本文是自己学习的总结,仅以作分享。若有不对的地方欢迎指正。
常见的有这几个命令:(( ))、let、expr、bc、$[ ]
运算符(不支持浮点数和字符串)
++、--:增加和减少,可前置也可放在结尾。变量在前则先输出变量值,变量在后则先运算后输出变量的值。如:a++,a在前面先计算a的值,再对a加1;同理a--
+、-、!、~:一元的正号与负号;逻辑与位的取反
*、/、%:乘法、除法与取余数
+、-:加法与减法
<、<=、>、>=:比较符号
==、!=:相等于不相等
<<、>>:向左位移和向右位移
&、^、|:位的AND与位的异或、位的或
&&、||:逻辑的AND与逻辑的OR
?::条件表达式
=、+=、-=、*=、/=、%=、&=、^=、<<=、>>=、|=:赋值运算符
(( ))用法
双小括号,常用且高效。用于简单的整数运算,只需要将特定的算数表达式用”$(( ” 和”))“括起。Shell的算术运算符符号都置于”$(( ” ……”))“的语法中。如同双引号功能,除了内嵌双引号无需转义。
let用法
let赋值表达式功能等同于:(( 赋值表达式)),但效率不如(())高。
expr用法
expr一般用于整数值,也可用于字符串,用来求表达式变量的值,同时expr也是一个手工命令行计算器。
语法:expr expression,expr $[$a + $b]($a、$b可为整数值)
特殊用法
用于判断文件扩展名:如果匹配则打印匹配字符的个数。否则打印0。
判断变量是否为整数。
bc的用法
是UNIX下的计算器,也可用在命令行下。支持科学计算法,可以用于小数计算。
小数乘除需scale,如:echo "scale=2;6.2 / 5.1" | bc(保留小数点后2位)
进制转换需obase,如:echo "obase=2;8" | bc (10进制8转换成2进制)