2013-05-09 56 views
2

在PHP中,我可以分配一個變量是這樣的:你可以在bash中的變量賦值中進行比較嗎?

$a = ($b == $c) ? $x : $y; 

哪個分配到$ a的值$ X IFF $ B == $ c和$ Y否則。 有沒有辦法在bash中本地執行此操作?

我知道有可能使用傳統的if語句,或者使用帶有echo的子shell,但我希望可能有一種簡單的方法來實現它。編寫6行if語句或使用子shell對於這樣的基本操作看起來很重要。

回答

3
[[ $b = $c ]] && a="$x" || a="$y" 
+0

它似乎也適用於單[任何原因[[更好? – Benubird 2013-05-09 10:37:00

+0

http://mywiki.wooledge.org/BashFAQ/031 – Georgemc 2013-05-09 10:38:43

+1

在我看來,最主要的優點是''[''在不引用變量時對空值更脆弱。例如:'b = 5; C =; [[$ b!= $ c]] && echo ok; [$ b!= $ c] && echo ok' – 2013-05-09 10:39:34