Saya belajar cara efisien menggunakan berbagai set
opsi dalam skrip saya dan menemukan set -u
yang tampaknya sempurna untuk keluar dari skrip saya jika variabel tidak diset dengan benar (mis. Menghapus pengguna). Menurut halaman manual , set -u
dan set -e
melakukan hal berikut ...
-e Exit immediately if a command exits with a non-zero status.
-u Treat unset variables as an error when substituting.
Saya membuat skrip pengujian untuk menguji fungsi ini, tetapi tampaknya tidak berfungsi seperti yang diharapkan. Mungkin seseorang bisa lebih menjelaskan masalah saya kepada saya dan di mana saya salah menafsirkan? Script tes di bawah ini. Terima kasih.
set -e
set -u
testing="This works"
echo $?
echo ${testing}
testing2=
echo $?
echo ${testing2}
testing3="This should not appear"
echo $?
echo ${testing3}
Saya mengharapkan skrip untuk menampilkan 0 dan "Ini berfungsi" , dan kemudian gagal karena ${testing2}
tidak diatur.
Sebagai gantinya saya ditampilkan 0 dan "Ini berfungsi" , diikuti oleh 0 dan kemudian 0 Ini seharusnya tidak muncul
Adakah yang bisa memberikan pengetahuan? Terima kasih.