这段代码:
#!/bin/sh
set -euo pipefail # strict mode
fn() {
local out=$(echo hello && false)
echo "out=$out"
}
fn
当管道出现故障时不会停止echo hello && false
。但当local
被移除时 - 它确实停止了。使用bash。
为什么这个变量是局部变量这一事实对于错误处理很重要?如何使其在编写时因局部变量赋值而失败?
这段代码:
#!/bin/sh
set -euo pipefail # strict mode
fn() {
local out=$(echo hello && false)
echo "out=$out"
}
fn
当管道出现故障时不会停止echo hello && false
。但当local
被移除时 - 它确实停止了。使用bash。
为什么这个变量是局部变量这一事实对于错误处理很重要?如何使其在编写时因局部变量赋值而失败?