我想测试传递给Linux shell脚本的参数数量。如果参数的数量不是2
或4
,则应该打印一些内容。不幸的是它不起作用。谁能解释我做错了什么?
#!/bin/bash
if [[ $# -ne 2 ]] || [[ $# -ne 4 ]];
then
echo "here";
fi
答案 0 :(得分:3)
您应该按逻辑OR
替换逻辑AND
,因此:
#!/bin/bash
if [[ $# -ne 2 && $# -ne 4 ]]; then
echo "here"
fi
以算术形式:
#!/bin/bash
if (($# != 2 && $# != 4)); then
echo "here"
fi
如您所见,无需使用2 [[ ]]
答案 1 :(得分:1)
逻辑。
if [[ $# -ne 2 ]] && [[ $# -ne 4 ]]; then
echo "here"
fi