相关疑难解决方法(0)

函数中的"set -e"

如何set -e在函数中使用语义?

在函数问题中重新打开"set -e",因为它没有被正确回答并且已被接受.

这是一个例子:

#!/bin/bash
set -exo pipefail
f() {
    echo a
    false
    echo Should NOT get HERE
}
if f ; then
    true
fi
Run Code Online (Sandbox Code Playgroud)

我想f退出false.

我的实验表明,使用subshel​​l (f)调用在这里没有帮助:

#!/bin/bash
set -exo pipefail
f() {
    echo a
    false
    echo Should NOT get HERE
}
g() {   
    ( f )
}
if g ; then
    true
fi
Run Code Online (Sandbox Code Playgroud)

移动f出来的if语句当然不会在这种特殊情况下的工作:

#!/bin/bash
set -exo pipefail
f() {
    echo a
    false
    echo …
Run Code Online (Sandbox Code Playgroud)

bash shell set sh

13
推荐指数
0
解决办法
5320
查看次数

标签 统计

bash ×1

set ×1

sh ×1

shell ×1