加入收藏 | 设为首页 | 会员中心 | 我要投稿 开发网_开封站长网 (http://www.0378zz.com/)- 科技、AI行业应用、媒体智能、低代码、办公协同!
当前位置: 首页 > 教程 > 正文

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编程者少走弯路。
 
 

(编辑:开发网_开封站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读