shell中变量的多个可能值

时间:2014-02-12 10:04:25

标签: bash shell

是否有某种方法可以在shell中为一些可能的值分配一个值,如下所示:

variable = $(command1) or $(command2)

知道这两个命令中只有一个给出结果

2 个答案:

答案 0 :(得分:2)

||如果command1返回非零(错误)返回码,operator将评估command2。

variable=$(command1 || command2)

同样,&&如果command1返回(ok)零返回码,运算符将评估command2。

variable=$(command1 && command2)

e.g。变量的分配:

var=$(ls zasdasd || echo "file does not exist") 
echo $var    ## outputs "file does not exist"

可以通过将错误流2定向到/dev/null

来抑制错误输出
var=$(ls zasdasd || echo "file does not exist") 2>/dev/null

答案 1 :(得分:1)

你可以这样做:

variable=$(command1 2>/dev/null || command2 2>/dev/null)

如果成功,则会将command1的输出分配给variable,否则会分配command2的输出。

如果任何命令失败,

2>/dev/null会抑制stderr。