shell 复合条件测试 if [ $1 == "1" -o $1 == "0" ] ------==和-eq怎么用

想要实现:

1   if  [ $1等于“1”,或者$1等于“0” ];then
2     输出一些东西
3  elif [ $1等于“2”,或者$1等于“3” ];then
4      输出一些东西
5  fi

1   if  [ $1等于“1 ] 或者 [ $1等于“0” ];then
2     输出一些东西
3  elif [ $1等于“2” ] 或者 [ $1等于“3” ];then
4    输出一些东西 5  fi

这里比较难操作的是等于和或者:

   等于: -eq  或者 ==

   或者: -o  ||

        与:-a &&

见:

1 if  [ $1 == “1” -o $1 == “0” ];then
2     输出一些东西
3 elif [ $1 == “2” -o $1 == “3” ];then
4      输出一些东西
5 fi

1 if  [ $1 == “1” ] || [ $1 == “0” ];then
2     输出一些东西
3 elif [ $1 == “2” ] || [ $1 == “3” ];then
4    输出一些东西 5 fi

看清楚我这里的==左右都有空格!同时这里也可以写成

1 if  [ $1 -eq “1” -o $1 -eq “0” ];then
2     输出一些东西
3 elif [ $1 -eq “2” -o $1 -eq “3” ];then
4      输出一些东西
5 fi

 

2019年6月25日,由于这个==左右空格问题,其实困扰了好几个小时,一直没发现错误原因竟然是在这里!!!!!!

所以,以后工作中要注意!!!!!

posted @ 2019-06-25 16:55  lililili——  阅读(5454)  评论(0)    收藏  举报