ланцюжок команд Fish через `&&` або `||`


Відповіді:


13

Логічні оператори, до яких ви звикли, підтримуються, оскільки риба 3.0.0, випущена 2018-12-28.

З приміток до випуску v3 :

  • тепер риба підтримує &&(як and), ||(як or) і !(подібне not) для кращої міграції з сумісних з POSIX оболонок ( # 4620 ).

130

У риб немає спеціального синтаксису для логічного 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


4
Існує відкрита проблема github, щоб додати підтримку цього синтаксису: && не працює · Випуск № 150 · fish-shell / fish-shell
aboy021,

20
This allows using a more familiar syntax:дуже суб’єктивно
Петро Пеллер

1
;andє менш читабельним, ніж те &&, що крапка з комою передбачає логічно непересічну операцію. Це візуально бадьорить.
Войовничий шимпанзе

@Elliott Я згоден, але Риба не дає тобі вибору.
Денніс

1
зауважте, що в оболонках риби та м'яса, оператори AND та OR мають той самий порядок, на відміну від мов, що базуються на C: unix.stackexchange.com/a/88851/50703
balupton
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.