我正在检查参数长度是否等于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
在任何情况下都不符合条件你能否纠正我在哪里做错了?
答案 0 :(得分:2)
您的条件是:如果argc
不等于5
或argc
不等于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