【发布时间】:2015-02-04 18:05:53
【问题描述】:
我想测试传递给 Linux shell 脚本的参数数量。如果参数的数量不是2 或4,它应该打印一些东西。不幸的是,它不起作用。谁能解释我做错了什么?
#!/bin/bash
if [[ $# -ne 2 ]] || [[ $# -ne 4 ]];
then
echo "here";
fi
【问题讨论】:
标签: linux bash shell command-line-arguments
我想测试传递给 Linux shell 脚本的参数数量。如果参数的数量不是2 或4,它应该打印一些东西。不幸的是,它不起作用。谁能解释我做错了什么?
#!/bin/bash
if [[ $# -ne 2 ]] || [[ $# -ne 4 ]];
then
echo "here";
fi
【问题讨论】:
标签: linux bash shell command-line-arguments
你应该用逻辑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
【讨论】:
-ne(不等于)