Fish shell:如何在错误时退出(bash set -e)

问题描述 投票:0回答:3

在 bash 上,您可以在脚本中使用

set -e
以便在出现错误时退出:

set -e
cd unexisting-folder
echo "this line will not be printed"

但是在fish shell上

set -e
用于擦除变量:

set FOO bar
set -e FOO
echo {$FOO} # prints newline

Fish 上的 Bash

set -e
相当于什么?

bash shell error-handling fish
3个回答
34
投票

鱼类中没有类似的东西。 https://github.com/fish-shell/fish-shell/issues/805 花一点时间讨论这个可疑版本可能是什么样子。

如果脚本很短,在每行前面加上

and
可能还不错:

cp file1 file2
and rm file1
and echo File moved

0
投票

另一个流行的选择是:

cp file1 file2; or return
rm file1; or return
echo File moved; or return

0
投票

另一种选择是将自定义函数添加到您要检查的命令中:

function try
  if ! $argv
    echo "ERROR ($argv)"
    exit 1
  end
end

try cd unexisting-folder
echo "this line will not be printed"
© www.soinside.com 2019 - 2024. All rights reserved.