为什么或条件不工作unix shell scipt

时间:2016-07-06 19:13:27

标签: shell sh ksh

我正在检查参数长度是否等于5或6并尝试如下,

 argc=$#
 if [ $argc  -ne 5 -o $argc -ne 6 ]; then
  echo "yes"
 fi

 if [ $# -ne 5 -o $# -ne 6 ]; then
 echo
 fi

 if [ $argc != 5 ] || [ $argc != 6 ]; then
 echo
 fi

在任何情况下都不符合条件你能否纠正我在哪里做错了?

2 个答案:

答案 0 :(得分:2)

您的条件是:如果argc不等于5argc不等于6 echo yes。这将始终满足,因此yes将始终打印出来。您需要if [ $argc -ne 5 -a $argc -ne 6 ]if [ $# -ne 5 -a $# -ne 6 ]

答案 1 :(得分:0)

用简单的英语,你的条件是"(参数的数量不等于5)或(参数的数量不等于6)"。这个条件总是正确的,因为数字参数不能同时为5和6.你可能想要使用AND吗?

make_shared