bash 有一个名为 set 的内置函数,具有如下所述的“提前退出”功能:
-e
如果可能由单个简单命令(请参阅简单命令)、列表(请参阅列表)或复合命令(请参阅复合命令)组成的管道(请参阅管道)返回非零状态,则立即退出。
如果您编写一个以它开头的 bash 脚本,set -e
它将在第一个失败的命令处中止,而不是继续运行所有后续命令(默认行为)。
你可以通过链接命令来在fish中实现类似的效果,and
但这很快就会变得笨拙。(sudo apt update; and sudo apt upgrade
是一回事,但想象一个实质性的脚本)
在第一个非零退出状态下,fish 中是否有等效设置来退出脚本?
笔记:
- Fish for bash 用户没有提到这一点。
- set在fish中是一个非常不同的命令
不幸的是,鱼没有这个功能。有一个长期存在的问题(fish-shell#510,自 2013 年开放)讨论是否以及如何在鱼中实现它。