通过 `&&` 或 `||` 链接 Fish 命令

Alb*_*ert 101 shell fish

在 Bash/ZSH 和其他 shell 中,我习惯使用&&||

Fish 中是否有任何等价物?

Den*_*nis 136

Fish 没有用于逻辑 AND ( &&) 或逻辑 OR ( ||)的特殊语法。

相反,您可以使用命令andand or,它们验证前一个命令的退出状态并采取相应的行动:

command1
and command2
Run Code Online (Sandbox Code Playgroud)
command1
or command2
Run Code Online (Sandbox Code Playgroud)

此外——就像在 bash 中一样——你可以使用分号;一个接一个地执行两个命令:

command1 ; command2
Run Code Online (Sandbox Code Playgroud)

这允许使用更熟悉的语法:

command1 ;and command2
command1 ;or command2
Run Code Online (Sandbox Code Playgroud)

请参阅http://fishshell.com/docs/current/tutorial.html#tut_combiners

  • `这允许使用更熟悉的语法:` 是非常主观的 (20认同)
  • 有一个开放的 github 问题来添加对这种语法的支持:[&& 不起作用·问题 #150·fish-shell/fish-shell](https://github.com/fish-shell/fish-shell/issues/ 150) (4认同)
  • 请注意,在 fish 和 bourne shell 中,AND 和 OR 运算符具有相同的顺序,这与基于 C 的语言不同:https://unix.stackexchange.com/a/88851/50703 (2认同)

Den*_*nis 18

自 2018 年 12 月 28 日发布的 fish 3.0.0 以来,您习惯使用的逻辑运算符得到支持。

v3 发行说明

  • fish 现在支持&&(like and)、||(like or) 和!(like not),以便更好地从符合 POSIX 的 shell ( #4620 )迁移。