shell 中的空格

系统 2283 0

1. 变量赋值时 = 两边不能有空格.

2. if比较时 = 两遍有空格.

3. [ 的 左右两边    和  ] 的左边有空格,

 

 

      
         1
      
       #!/bin/
      
        sh
      
      
         2
      
      
        # 字符串比较


      
      
         3
      
       aa=


      
         4
      
       bb=
      
        "
      
      
        hello
      
      
        "
      
      
         5
      
      
        cc
      
      =
      
        "
      
      
        world
      
      
        "
      
      
         6
      
      
         7
      
       # 
      
        1
      
      
        .注意判断中的字符串变量用双引号括起来(不括起来在某些情况下会出错);


      
      
         8
      
       # 
      
        2
      
      
        .字符串判断相等用一个等号,不是两个;


      
      
         9
      
       # 
      
        3
      
      .=
      
        两边有空格;


      
      
        10
      
       # 
      
        4
      
      
        .[的左右两边,]的左边有空格.


      
      
        11
      
      
        if
      
       [ 
      
        "
      
      
        ${aa}
      
      
        "
      
       = 
      
        "
      
      
        ${bb}
      
      
        "
      
       ]; 
      
        then
      
      
        12
      
      
        echo
      
      
        "
      
      
        yes
      
      
        "
      
      
        13
      
      
        else
      
      
        14
      
      
        echo
      
      
        "
      
      
        no
      
      
        "
      
      
        15
      
      
        fi
      
      
        16
      
      
        

 

 

 

 

 

以下摘自http://blog.csdn.net/panda19881/article/details/6626727

1.定义变量时, =号的两边不可以留空格.
eg:
gender=femal————right
gender =femal———–wrong
gender= femal———–wrong
2.条件测试语句 [ 符号的两边都要留空格 .
eg:
if [ $gender = femal ]; then——-right.
echo “you are femal”;
fi

if[ $gender...-----------------------wrong
if [$gender...----------------------wrong.

3.条件测试的内容,如果是字符串比较的话, 比较符号两边要留空格!
eg:
if [ $gender = femal ]; then——-right.
if [ $gender= femal ]; then——–wrong.
if [ $gender=femal ]; then———wrong.

4.如果if 和 then写在同一行, 那么,注意, then的前面要跟上 ; 号.如果 then 换行写, 那么也没问题.
eg:
if [ $gender = femal ]; then——-right.
if [ $gender = femal ]
then——————————-right.
if [ $gender = femal ] then——-wrong. then前面少了 ; 号.
提示出错信息:
syntax error near unexpected token then
同理,还有很多出错信息 比如
syntax error near unexpected token fi 等都是这样引起的.

5.if 后面一定要跟上 then. 同理
elif 后面一定要跟上 then.
不然提示出错信息:
syntax error near unexpected token else

1)if 语句后面需要跟着then,同时前面要有分号;
2) 空格非常重要,shell 会认为空格前的为一个命令,如果a=3 认为是赋值操作,如果写成a = 3,那么就会认为a为一个命令 this=`ls -l |grep ‘^-’ | wc -l `
3) 操作符之间要用空格分开 ,如 test ! -d $1,其中的!和-d就要用空格分开
空格是命令解析中的重要分隔符

6. 命令和其后的参数或对象之间一定要有空格

if [ -x"~/Workspace/shell/a.sh" ];then

只有 -x 后有空格才表示紧跟其后的字符串是否指向一个可执行的文件名,否则就成了测试 -x"~/Workspace/shell/a.sh" 这个字符串是不是空。

7.取变量值的符号'$'和后边的变量或括号不能有空格

shell 中的空格


更多文章、技术交流、商务合作、联系博主

微信扫码或搜索:z360901061

微信扫一扫加我为好友

QQ号联系: 360901061

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描下面二维码支持博主2元、5元、10元、20元等您想捐的金额吧,狠狠点击下面给点支持吧,站长非常感激您!手机微信长按不能支付解决办法:请将微信支付二维码保存到相册,切换到微信,然后点击微信右上角扫一扫功能,选择支付二维码完成支付。

【本文对您有帮助就好】

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描上面二维码支持博主2元、5元、10元、自定义金额等您想捐的金额吧,站长会非常 感谢您的哦!!!

发表我的评论
最新评论 总共0条评论