Welcome 微信登录
编程资源 图片资源库 蚂蚁家优选 PDF转换器

首页 / 操作系统 / Linux / Bash编程中不得不注意的一些细节

1. = 号赋值不能有空格:   我们用其他语言写程序的时候,=号两边喜欢留一个空格,这是一种很好的习惯,让程序读起来舒适。但是在bash编程中,这种做法却会产生错误。  例如:   a = 123 或 a= 123 或  a =123这些都会报错,只有a=123(等号两边无空格)才能正常执行,这一点需要非常注意。
2. if语句条件两边要加空格  例如 if[12 -lt 13]; then 这个语句是不能正常解释的,只有写成这样的形式: if[ 12 -lt 13 ] (注意中括号与条件之间有空格)才能正常解释。
3. if条件语句后面要加分号:   网上很多教程在介绍bash的if语句时,基本上都套用这个模式:
if condition1 then   dosomethingelse  dosomethingfi
 这样很容易让一些像我这样的新手弄出莫名其妙的错误。例如笔者写了一段这样的程序:       
if [ 22 -lt 33 ]  then
    echo "22 less than 33"
else
    echo "ok"
fi
然而程序运行的状况却让笔者摸不着头脑。报出这样的错误:
[sycflash@localhost bash]$ sh if_else.shif_else.sh: line 12: syntax error near unexpected token `else"if_else.sh: line 12: `else"
上网搜索了一阵才知道原来是我的if [ 22 -lt 33 ]这句后面忘了加分号,程序修改成以下形式就OK了。if [ 22 -lt 33 ];  then        <-----------------------------注意then 前面的分号
    echo "22 less than 33"
else
    echo "ok"
fi上面两个问题看似小事,但却会让初学者头晕脑胀。望各位读者也贴出自己曾经遇到过的麻烦,让bash编程者少走弯路。