Dalam proyek saya, saya memiliki cuplikan berikut:
local output="$(bash "${1##*/}")"
echo "$?"
Ini selalu mencetak nol karena local
, bagaimanapun, menghapus local
menyebabkan $?
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?
shellcheck
tidak hanya akan menangkap masalah ini tetapi menyarankan solusinya di unix.stackexchange.com/a/281749/24718 !