ランニング
bash -c 'bash -c "echo test1; exit 1;" &> /tmp/x; buildresult=$?; tail -n 100 /tmp/x; exit $buildresult;'
で結果test1コンソールに印刷されてecho $?印刷するには1、コマンドが内部でどのように返す必要がありますので、正確である私の理解でいる[b/d]ash -cのに対し、返さ
dash -c 'dash -c "echo test1; exit 1;" &> /tmp/x; buildresult=$?; tail -n 100 /tmp/x; exit $buildresult;'
結果は同じ出力になりますが、0に従って戻りますecho $?。
シェルとポータブルシェルプログラミングの理解を深めるために、この違いを理解したいと思います。
Ubuntu 17.10(Artful Aardvark)でbash4.4.12およびdash0.5.8-2.3ubuntu1 を使用しています。
&>POSIXです。それはだ&が続きます>。ではfoo &> bar、それはバックグラウンドでfoo &開始fooし> bar、コマンドなしでリダイレクトを実行することです。bash解釈が異なる場合、POSIXに準拠していません。