Bash
以邏輯測試的輸出為條件的變數的一行定義
在
bash
程式中,我總是以以下長手方式定義條件變數dog=1 if [[ $dog -eq 1 ]] ; then cow=1 else cow=0 fi
這顯然是非常低效的。在
MATLAB
我可以執行以下操作cow=(dog==1)
即,一行而不是五行。在 bash 中是否有類似的方法可以做到這一點?感謝您的任何建議。
對於純粹基於整數的賦值,您可以使用
expr ? expr : expr
條件運算符:dog=1 cow=$((dog ? 1 : 0))
這僅適用於牛和狗的整數值,並且僅測試(狗,此處)為零/非零值。
dog=2 cow=$((dog ? 42 : 7))