所以我尝试了这一点,如果在UNIX elif的代码中使用“bash脚本”,它是给我这个输出庆典错误“命令未找到”使用时,如果用“或”运算符
script[11]: pc4: command not found
script[14]: pc4: command not found
代替“-o”我以前有“|”作为“或”运营商,但那不起作用。另外,我收到括号但耶...
#!/bin/bash
host=`hostname`
test1="pc4"
test2="pc5"
prod1="t01"
prod2="t02"
prod3="t03"
prod4="t04"
path="/home/test1/test2/test3"
if "$host" = "$test1" -o "$host" = "$test2"
then
echo "test loaded"
elif "$host" = "$prod1" -o "$host" = "$prod2" -o "$host" = "$prod3" -o "$host" = "$prod4"
then
echo "prod loaded"
else
echo "bad host"
fi
编辑:固定它,它必须是:
if [ "$host" = "$test1" -o "$host" = "$test2" ];
...
...
elif [ "$host" = "$prod1" -o "$host" = "$prod2" -o "$host" = "$prod3" -o "$host" = "$prod4" ];
感谢所有!
'|'是管道,''||会是或。但是'if'基于命令的返回值工作,所以你想把条件包装在'[...]'中。请注意,'['本身就是一个命令,而不是任何语法的一部分。 – Siguza
@Siguza好了再次尝试加入[],现在它可以工作,也许我忘了在括号之后和之前使用空格。谢谢,是|| =或者只是bash或者一般的or?认为这是| –
在大多数编程语言中,'|'是按位或“||”是逻辑或。 – Siguza