題 鏈魚命令通過`&&`或`||`


在Bash / ZSH和其他shell中,我習慣使用 && 和 ||

魚有什麼相同的嗎?


87
2017-07-10 03:01


起源


Master分支現在支持此語法,將在Fish 3.0中發布(github.com/fish-shell/fish-shell/commit/...) - Elliott Beach


答案:


Fish沒有邏輯AND的特殊語法(&&)或邏輯OR(||)。

相反,您可以使用命令 and 和 or,驗證上一個命令的退出狀態並採取相應措施:

command1
and command2
command1
or command2

此外 - 就像在bash中一樣 - 你可以使用分號 ; 一個接一個地執行兩個命令:

command1 ; command2

這允許使用更熟悉的語法:

command1 ;and command2
command1 ;or command2

看到 http://fishshell.com/docs/current/tutorial.html#tut_combiners


120
2017-07-10 03:18



有一個開放的github問題來添加對這種語法的支持: &&不起作用·問題#150·魚殼/魚殼 - aboy021
This allows using a more familiar syntax: 是非常主觀的 - Petr Peller
;and 不太可讀 && 因為分號表明邏輯上不相交的操作。這在視覺上很刺耳。 - Elliott Beach
@Elliott我同意,但Fish沒有給你一個選擇。 - Dennis
請注意,在fish和bourne shell中,與基於C的語言不同,AND和OR運算符具有相同的順序: unix.stackexchange.com/a/88851/50703 - balupton