Ответы:
Логические операторы, к которым вы привыкли, поддерживаются начиная с 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менее читабелен, чем &&точка с запятой, которая предполагает логически непересекающуюся операцию. Это визуально сотрясает.