Ketika saya mencoba mengeksekusi mail
dari dalam suatu fungsi dalam skrip bash, ia menciptakan sesuatu yang mirip dengan bom fork. Untuk memperjelas, ini menciptakan masalah:
#!/bin/bash
mail() {
echo "Free of oxens" | mail -s "Do you want to play chicken with the void?" "example@example.org"
}
mail
exit 0
Kadang-kadang Anda hanya bisa membunuh perintah dan itu akan membunuh proses anak, tetapi kadang-kadang Anda harus melakukannya killall -9
.
Tidak peduli apakah surat itu dikirim atau tidak. The bom garpu dibuat dengan cara baik. Dan sepertinya tidak menambahkan cek untuk kode keluar, seperti if ! [ "$?" = 0 ]
, membantu.
Tetapi skrip di bawah ini berfungsi sebagaimana dimaksud, baik itu menghasilkan kesalahan atau mengirim surat.
#!/bin/bash
echo "Free of oxens" | mail -s "Do you want to play chicken with the void?" "example@example.org"
exit 0
Mengapa ini terjadi? Dan bagaimana Anda akan memeriksa kode keluar dari perintah email?