我想testing传递给Linux shell脚本的参数的数量。 如果参数的数目不是2
或4
,它应该打印一些东西。 不幸的是,这是行不通的。 任何人都可以解释我做错了什么?
#!/bin/bash if [[ $# -ne 2 ]] || [[ $# -ne 4 ]]; then echo "here"; fi
你应该用逻辑AND
来替换逻辑OR
,所以:
#!/bin/bash if [[ $# -ne 2 && $# -ne 4 ]]; then echo "here" fi
算术形式:
#!/bin/bash if (($# != 2 && $# != 4)); then echo "here" fi
正如你所看到的,不需要使用2 [[ ]]
逻辑。
if [[ $# -ne 2 ]] && [[ $# -ne 4 ]]; then echo "here" fi