我怎样才能做bash' set -e',' set -u'和'设置-x'在鱼?

时间:2014-04-18 03:46:08

标签: shell fish

我想设置-e我可以捕获信号,但其他人我不知道。

2 个答案:

答案 0 :(得分:8)

为了完整性:

  • set -e:如果命令失败则退出
  • 如果在设置
  • 之前引用变量,则设置-u:errors
  • set -x:显示运行的命令

很抱歉,这些选项中没有任何相同的鱼!如果您有兴趣看到它们已添加,则跟踪它们的问题位于https://github.com/fish-shell/fish-shell/issues/805

正如您肯定发现的那样,鱼的目标更多是交互式使用而不是脚本。以交互方式使用鱼是很好和常见的,但是使用sh。

编写脚本

答案 1 :(得分:1)

最近(2020年4月)在鱼3.1.2中添加了此功能。

set fish_trace 1    # print the expanded commandline before execution
set fish_trace 2    # prefix the commandline with file and line number

set fish_trace 1 1  # print the commandline before execution, 
                    #   and print its exit status after execution
set fish_trace 1 2  # as above, but print the exit status of all subprocesses (?)

set fish_trace 0 1  # only print the exit status of commandlines

https://github.com/fish-shell/fish-shell/issues/3427#issuecomment-610048527处查看Github问题(现已关闭)