Verkettung von Fischbefehlen über "&" oder "||"

94

In Bash / ZSH und anderen Shells bin ich es gewohnt, &&und zu verwenden ||.

Gibt es ein Äquivalent in Fisch?

Albert
quelle
Diese Syntax wird jetzt im Master-Zweig unterstützt und in Fish 3.0 ( github.com/fish-shell/fish-shell/commit/… )
Warlike Chimpanzee,

Antworten:

13

Die von Ihnen gewohnten logischen Operatoren werden seit fish 3.0.0 unterstützt, das am 28.12.2018 veröffentlicht wurde.

Aus den Versionshinweisen zu Version 3 :

  • fish unterstützt jetzt &&(like and), ||(like or) und !(like not) für eine bessere Migration von POSIX-kompatiblen Shells ( # 4620 ).
Dennis
quelle
132

Fish hat keine spezielle Syntax für ein logisches AND ( &&) oder ein logisches OR ( ||).

Stattdessen können Sie die Befehle andund verwenden or, die den Exit-Status des vorherigen Befehls überprüfen und entsprechend handeln:

command1
and command2
command1
or command2

Außerdem können Sie - genau wie in bash - mit einem Semikolon ;zwei Befehle nacheinander ausführen:

command1 ; command2

Dies ermöglicht die Verwendung einer vertrauteren Syntax:

command1 ;and command2
command1 ;or command2

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

Dennis
quelle
4
Es gibt ein offenes Github-Problem, um Unterstützung für diese Syntax hinzuzufügen: && funktioniert nicht ·
aboy021
20
This allows using a more familiar syntax:ist sehr subjektiv
Petr Peller
1
;andist weniger lesbar als &&wenn das Semikolon eine logisch getrennte Operation nahelegt. Es ist optisch irritierend.
Kriegerischer Schimpanse
@Elliott Ich stimme zu, aber Fish gibt dir keine Wahl.
Dennis
1
Beachten Sie jedoch, dass AND- und OR-Operatoren in Fisch- und Borowski-Shells im Gegensatz zu C-basierten Sprachen dieselbe Reihenfolge haben: unix.stackexchange.com/a/88851/50703
balupton