このコードは:
#!/bin/sh
set -euo pipefail # strict mode
fn() {
local out=$(echo hello && false)
echo "out=$out"
}
fn
パイプラインが失敗しても停止しませんecho hello && false
。ただし、local
削除すると停止します。バッシュを使用してください。
この変数がローカル変数であるという事実が、エラー処理に重要な理由は何ですか?執筆時にローカル変数の割り当てが失敗する方法は?