(2 jawaban)
Tutup 2 tahun yang lalu.
Di terminal saya, itu mencetak nomor yang tampaknya acak 127
. Saya pikir itu mencetak beberapa nilai variabel dan untuk memeriksa kecurigaan saya, saya mendefinisikan variabel baru v=4
. Menjalankan echo $?
lagi memberi saya sebagai keluaran.
Saya bingung karena saya mengharapkan 4 menjadi jawabannya.
Jawaban yang Diterima:
Dari man bash
:
$? Memperluas ke status keluar dari pipeline latar depan yang paling baru dijalankan.
echo $?
akan mengembalikan status keluar dari perintah terakhir. Anda mendapatkan 127
itu adalah status keluar dari perintah yang terakhir dieksekusi keluar dengan beberapa kesalahan (kemungkinan besar). Perintah pada penyelesaian yang berhasil keluar dengan status keluar (paling mungkin). Perintah terakhir memberikan output
sejak
echo $v
pada baris sebelumnya selesai tanpa kesalahan.
Jika Anda menjalankan perintah
v=4
echo $v
echo $?
Anda akan mendapatkan output sebagai:
4 (from echo $v)
0 (from echo $?)
Coba juga:
true
echo $?
Anda akan mendapatkan .
false
echo $?
Anda akan mendapatkan 1
.
true
perintah tidak melakukan apa-apa, itu hanya keluar dengan kode status ; dan
false
perintah juga tidak melakukan apa-apa, itu hanya keluar dengan kode status yang menunjukkan kegagalan (yaitu dengan kode status 1
).