Ответы:
Логические операторы, к которым вы привыкли, поддерживаются начиная с fish 3.0.0, выпущенного 2018-12-28.
- fish теперь поддерживает
&&
(likeand
),||
(likeor
) и!
(likenot
) для лучшей миграции из POSIX-совместимых оболочек ( # 4620 ).
У Fish нет специального синтаксиса для логического И ( &&
) или логического ИЛИ ( ||
).
Вместо этого вы можете использовать команды 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
This allows using a more familiar syntax:
очень субъективно
;and
менее читабелен, чем &&
точка с запятой, которая предполагает логически непересекающуюся операцию. Это визуально сотрясает.