如何在命令行中声明包含 "or" 的条件?
How do I declare a conditional that includes "or" on the command line?
我正在尝试在命令行上编写一个需要两个条件的 if/then 语句。我似乎无法正确使用语法。我试过:
if [ "$var1" == "value1" || "$var2" == "value2"];
if [ "$var1" == "value1"] || ["$var2" == "value2"];
if [[ "$var1" == "value1" || "$var2" == "value2"]];
所有 return 个错误。我知道这是一个基本问题,但我对命令行脚本编写还是很陌生。欢迎任何帮助。
if [ "$var1" == "value1" || "$var2" == "value2"];
没有。 [
不支持 ||
运算符。
if [ "$var1" == "value1"] || ["$var2" == "value2"];
差不多。使用 =
,而不是 ==
和 [
,因为 POSIX 没有定义 ==
。不过有些 shell 可能支持它作为扩展。错误不包括 space 结束前的 ]
.
if [[ "$var1" == "value1" || "$var2" == "value2"]];
是的,但是和上面一样的错误。在结束 ]]
之前,您需要一个 space。正确的行是
之一
if [ "$var1" = "value1" ] || [ "$var2" = "value2" ];
if [[ "$var1" == "value1" || "$var2" == "value2" ]];
test
命令([ ... ]
语法)支持 -o
运算符来评估逻辑或条件:
if [ "$var1" = "value1" -o "$var2" = "value2" ] ; then
echo match
else
echo fail
fi
我正在尝试在命令行上编写一个需要两个条件的 if/then 语句。我似乎无法正确使用语法。我试过:
if [ "$var1" == "value1" || "$var2" == "value2"];
if [ "$var1" == "value1"] || ["$var2" == "value2"];
if [[ "$var1" == "value1" || "$var2" == "value2"]];
所有 return 个错误。我知道这是一个基本问题,但我对命令行脚本编写还是很陌生。欢迎任何帮助。
if [ "$var1" == "value1" || "$var2" == "value2"];
没有。 [
不支持 ||
运算符。
if [ "$var1" == "value1"] || ["$var2" == "value2"];
差不多。使用 =
,而不是 ==
和 [
,因为 POSIX 没有定义 ==
。不过有些 shell 可能支持它作为扩展。错误不包括 space 结束前的 ]
.
if [[ "$var1" == "value1" || "$var2" == "value2"]];
是的,但是和上面一样的错误。在结束 ]]
之前,您需要一个 space。正确的行是
if [ "$var1" = "value1" ] || [ "$var2" = "value2" ];
if [[ "$var1" == "value1" || "$var2" == "value2" ]];
test
命令([ ... ]
语法)支持 -o
运算符来评估逻辑或条件:
if [ "$var1" = "value1" -o "$var2" = "value2" ] ; then
echo match
else
echo fail
fi