zoukankan      html  css  js  c++  java
  • shell 中的空格

    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.取变量值的符号'$'和后边的变量或括号不能有空格

  • 相关阅读:
    几个影响sql性能语句的例子
    orderby工作原理 + 最小代价取随机数
    count(*)实现原理+两阶段提交总结
    脏页flush和收缩表空间
    mysql本身用错索引+给字符串字段加索引
    Java概念辨析:equals和== equals和hashCode
    abstract方法必须在abstract类中 这句话是对的还是错的?
    java实际项目中interface和abstract interface 区别
    【timeisprecious】【JavaScript 】JavaScript String 对象
    Linux学习(三)putty,xshell使用以及密匙登陆
  • 原文地址:https://www.cnblogs.com/helloweworld/p/3751336.html
Copyright © 2011-2022 走看看