GNU/Linux >> Belajar Linux >  >> Linux

Apa yang Digema $? Mengerjakan??

Pertanyaan ini sudah memiliki jawaban di sini :Bagaimana cara mencari kode keluar untuk aplikasi?

(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 ).


Linux
  1. Apa?

  2. Apa itu Exec 3?

  3. Apa yang Sebenarnya Dilakukan Libgl_always_indirect=1?

  1. Apa. ~/.bashrc Perintah Lakukan??

  2. Apa yang dikembalikan malloc(0)?

  3. Apa artinya 'cd -'?

  1. Apa yang dilakukan 'bash -c'?

  2. Apa gunanya $# di Bash

  3. Apa yang dilakukan `set -x`?