łańcuch poleceń Fish za pomocą `&&` lub `||`


Odpowiedzi:


13

Operatory logiczne, do których jesteś przyzwyczajony, są obsługiwane od wersji 3.0.0 wydanej 28.12.2018.

Z informacji o wersji v3 :

  • fish obsługuje teraz &&(like and), ||(like or) i !(like not), dla lepszej migracji z powłok zgodnych z POSIX ( # 4620 ).

132

Fish nie ma specjalnej składni dla logicznego AND ( &&) lub logicznego OR ( ||).

Zamiast tego możesz użyć poleceń andi or, które weryfikują status wyjścia poprzedniego polecenia i działają odpowiednio:

command1
and command2
command1
or command2

Ponadto - podobnie jak w bash - możesz użyć średnika ;do wykonania dwóch poleceń jedna po drugiej:

command1 ; command2

Pozwala to na użycie bardziej znanej składni:

command1 ;and command2
command1 ;or command2

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


4
Istnieje otwarty problem github, aby dodać obsługę tej składni: && nie działa · Problem # 150 · fish-shell / fish-shell
aboy021

20
This allows using a more familiar syntax:jest bardzo subiektywny
Petr Peller

1
;andjest mniej czytelny niż &&jako, że średnik sugeruje logicznie rozłączną operację. To wizualnie denerwujące.
Warlike Chimpanzee

@Elliott Zgadzam się, ale Fish nie daje ci wyboru.
Dennis

1
zauważ jednak, że w skorupkach ryb i bourne operatory AND i OR mają tę samą kolejność, w przeciwieństwie do języków opartych na C: unix.stackexchange.com/a/88851/50703
balupton
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.