Dalam proyek saya, saya memiliki cuplikan berikut:
local output="$(bash "${1##*/}")"
echo "$?"
Ini selalu mencetak nol karena local, bagaimanapun, menghapus localmenyebabkan $?variabel berperilaku dengan benar: yang mengasumsikan kode keluar dari subkulit.
Pertanyaan saya adalah: bagaimana saya bisa menjaga variabel ini tetap lokal sementara juga menangkap nilai keluar?
shellchecktidak hanya akan menangkap masalah ini tetapi menyarankan solusinya di unix.stackexchange.com/a/281749/24718 !