shell计算(一)
发布日期:2021-05-08 04:30:46 浏览次数:27 分类:精选文章

本文共 1599 字,大约阅读时间需要 5 分钟。

说明:该篇主要是'算数运算命令''(())'的用法强调:'方法很多,精通一种即可,能看懂其他的即可'

一    算数运算符

二     算数运算命令

三    实战

(1)基础语法

(2)简单数值计算

 

(3)混合计算

'需求':计算1+2...+100的和

细节:'(())'里面两端可以有任何的空格,为了增强'可读性',一般'两端各留一个空格',变量和运算符有无空格也无所谓

(4)特殊运算

说明:在(())中'使用变量'可以去掉'变量前的$符号',但是加上$符号也不会出错,但是'输出计算结果时必须加上$'

(5)比较和判断

#!/bin/bashif (( 3>2 && 8==8 ));then    echo "Hello Java"fi

说明两点

(1)大小比较的结果--->从'自己理解角度'(boolean,恰恰与实际相反)-->'1表示真,0表示假'(2)涉及的数字和变量必须是整数,因为(())'只针对整数计算的'

(5)++和--特殊运算符

备注:'从左到右执行,碰到符号则计算'

(6)小脚本计算加减乘除

#!/bin/bash# (1)脚本传参进行赋值a=$1b=$2# (2)计算echo "a+b=$(( a+b  ))"echo "a-b=$(( a-b  ))"echo "a*b=$(( a*b  ))"echo "a/b=$(( a/b  ))"echo "a%b=$(( a%b  ))"echo "a**b=$(( a**b  ))"

(7)增强上面案例的健壮性

#!/bin/bashset -u# (1)不符合要求,打印提示信息print_usage(){    # 非整数    printf "Please enter an interger\n"    # 退出    exit 1}# (2)read接受参数,并给予提示信息read -p "Please input first number: " firstnum# (3)判断用户输入是否是整数(-n判断字符串否是非空)if [ -n "`echo $firstnum| sed 's#[0-9]##g'`"  ];then    # 如果是非空表示输入的不是整数,则打印提示信息,并退出    print_usagefi# (3)继续输入运算符read -p "Please input the operations: " operationsif [ "${operations}" != "+" ] && [ "${operations}" != "-" ] && [ "${operations}" != "*" ] && [ "${operations}" != "/" ];then    echo "Please use one of {+|-|*|/} "    exit 2fi# (4)判断用户输入是否是整数read -p "Please input secondnumber: " secondnumif [ -n "`echo $secondnum| sed 's#[0-9]##g'`"  ];then    # 如果是非空表示输入的不是整数,则打印提示信息,并退出    print_usagefi# (5)最终的计算echo ""${firstnum}${operations}${secondnum}=$(( firstnum ${operations} secondnum))

 报错提示

这种方式'报错',印证了一点'只有数字变量可以不加$'echo ""${firstnum}${operations}${secondnum}=$(( firstnum operations secondnum))

 

掌握知识

(1) 判断用户输入是否是整数(2) read变量读取外部的参数

上一篇:shell计算(二)let和expr命令
下一篇:shell编程(二十一)trap捕捉信号

发表评论

最新留言

关注你微信了!
[***.104.42.241]2025年04月08日 02时38分45秒