shell脚本对空格有严格的规定,赋值语句等号两边不能有空格,而字符串比较,等号两边必须有空格
赋值时: i=1
i=$((i+1)) // =用作赋值时,两边绝对不能有空格
比较时: if [ $a = $b ] // =用作比较判断时,两边必须有空格
if:
if: if COMMANDS; then COMMANDS; [ elif COMMANDS; then COMMANDS; ]… [ else COMMANDS; ] fi
整数比较:if [ a -xx b ] //中括号前后一定要加空格否则会报错
= //eq equal
//gt greater than
< //lt less than
!= //ne not equal
= //ge greater equal
<= //le less equal
i=4
if [ $i -lt 5 ]; then echo small ; elif [ $i -eq 5 ]; then echo equal ; else echo big ; fi
//中括号前后一定要加空格否则会报错
#/bin/bash
linenumber=1
linenumber=`expr $linenumber+1`
echo $linenumber
执行./test.sh
输出 :1+1
shell程序中的操作默认都是字符串操作,这里shell看成了字符串的连接,所以要注意使用空格的问题。
#/bin/bash
linenumber=1
linenumber=`expr $linenumber + 1`
echo $linenumber
输出:2