次のコードを検討してください
outer-scope.sh
#!/bin/bash
set -e
source inner-scope.sh
echo $(inner)
echo "I thought I would've died :("
inner-scope.sh
#!/bin/bash
function inner() { echo "winner"; return 1; }
outer-scope.sh
呼び出しがinner()
失敗したときに終了しようとしています。以来$()
、サブシェルを呼び出し、これは起こりません。
関数がゼロ以外の終了コードで終了する可能性があるという事実を保持しながら、他にどのように関数の出力を取得しますか?