Bash は、「エラー時に終了」環境フラグをコマンド置換シェルに渡していないようです。
(bash の戻り値の欠如を回避するために) 多数のコマンド置換を使用していますが、サブシェルで何かが失敗した場合は、スクリプト全体をダウンさせたいと考えています。
たとえば、次のようになります。
set -e
function do_internet {
curl not.valid.address
}
answer=$(do_internet)
スクリプトがそこで停止し、続行しないようにしたいと思います。(-e を設定することで、すべてに '|| die' を付ける必要がなくなることを願っていました。
私は何か間違ったことをしていますか?および/またはこれを回避する方法はありますか?
以下に少し例を示します。
#!/bin/bash
set -e
echo "You should only see this line, and not any other line."
function foo {
false
echo "The above line is false. Figure that one out, Plato."
}
bar=$(foo)
echo $bar
両方の行を印刷します。(使用GNU bash, version 4.2.25(1)-release (x86_64-pc-linux-gnu)
)