ランニング
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)でbash
4.4.12およびdash
0.5.8-2.3ubuntu1 を使用しています。
&>
POSIXです。それはだ&
が続きます>
。ではfoo &> bar
、それはバックグラウンドでfoo &
開始foo
し> bar
、コマンドなしでリダイレクトを実行することです。bash
解釈が異なる場合、POSIXに準拠していません。