Lari
bash -c 'bash -c "echo test1; exit 1;" &> /tmp/x; buildresult=$?; tail -n 100 /tmp/x; exit $buildresult;'
hasil test1yang dicetak untuk menghibur dan echo $?untuk mencetak 1yang menurut saya benar, karena perintah harus kembali dengan apa yang [b/d]ash -cdikembalikan dalam batin
dash -c 'dash -c "echo test1; exit 1;" &> /tmp/x; buildresult=$?; tail -n 100 /tmp/x; exit $buildresult;'
menghasilkan output yang sama, tetapi kembali dengan 0menurut echo $?.
Saya ingin memahami perbedaan ini untuk memperluas pemahaman saya tentang shell dan pemrograman shell portabel.
Saya menggunakan bash4.4.12 dan dash0.5.8-2.3ubuntu1 di Ubuntu 17.10 (Artful Aardvark).
&>ada dalam POSIX. Itu&diikuti oleh>. Difoo &> bar, itufoo &dimulaifoodi latar belakang dan> baruntuk melakukan pengalihan tanpa perintah.bashtidak sesuai dengan POSIX ketika menerjemahkannya secara berbeda.