Bash编程中不得不谨慎的一些细节
发布时间:2021-11-25 17:31:07 所属栏目:教程 来源:互联网
导读:1. = 号赋值不能有空格: 我们用其他语言写程序的时候,=号两边喜欢留一个空格,这是一种很好的习惯,让程序读起来舒适。但是在bash编程中,这种做法却会产生错误。 例如: a = 123 或 a= 123 或 a =123这些都会报错,只有a=123(等号两边无空格)才能正常执行
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 dosomething else dosomething fi 这样很容易让一些像我这样的新手弄出莫名其妙的错误。 例如笔者写了一段这样的程序: if [ 22 -lt 33 ] then echo "22 less than 33" else echo "ok" fi 然而程序运行的状况却让笔者摸不着头脑。报出这样的错误: [sycflash@localhost bash]$ sh if_else.sh if_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编程者少走弯路。 ![]() (编辑:开发网_开封站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |