2014-02-12 51 views
1

有一些方法,以一個值賦給了一些可能的值的外殼是這樣的:多個可能值

variable = $(command1) or $(command2) 

知道,只有這兩個命令的人給結果

回答

2

||如果command1返回非零(錯誤)返回碼,運算符將評估command2。

variable=$(command1 || command2) 

同樣,在command1返回(OK)歸零碼& &運營商將評估命令2。

variable=$(command1 && command2) 

例如,變量的賦值:

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

可以執行:

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

這將分配的command1輸出到variable如果它是成功的,否則它會分配從command2輸出。

2>/dev/null是否有抑制stderr的情況下,任何命令失敗。