Dalam Bash scripting, apa arti dari "$! "

39

Jika saya menetapkan variabel dengan

temp=$!

apa nilainya?

Chen A.
sumber

Jawaban:

57

$!berisi ID proses dari pipa latar belakang yang paling baru dieksekusi. Dari man bash:

Parameter khusus

Shell memperlakukan beberapa parameter secara khusus. Parameter ini hanya dapat dirujuk; penugasan kepada mereka tidak diizinkan.

...

! - Memperluas ID proses dari perintah latar belakang (asinkron) yang paling baru dieksekusi.

Sebagai contoh:

$ sleep 60 &
[1] 6238
$ echo "$!"
6238
Chris Down
sumber
Saya merasa bahwa Anda dan slm mengatakan tentang hal yang sama :)
msw
22

Dari halaman manual Bash:

   !   Expands to the process ID of the most recently executed 
       background (asynchronous) command.

Jadi $!akan berisi ID proses (PID) dari pekerjaan terakhir yang dilatar belakangi.

Contoh

$ sleep 100 &
[1] 18813

$ echo "$!"
18813

Referensi

slm
sumber
1
Saya merasa bahwa Anda dan Chris Down mengatakan hal yang sama :)
CVn
2
Tampaknya ada gema tentang Pertanyaan 8- ini).
slm
Suara yang sama juga diperhitungkan!
CVn
@ MichaelKjörling - hei orang-orang hebat berpikir sama 8-).
slm