Saya perlu menjalankan beberapa perintah menggunakan nohup
. Setiap perintah harus dieksekusi setelah perintah sebelumnya.
Saya menggunakan perintah ini sebagai contoh:
nohup wget $url && wget $url2 > /dev/null 2>&1 &
Namun perintah itu tidak berhasil.
Perintah apa yang harus saya gunakan untuk tujuan ini?
shell
command-line
nohup
Ehsan
sumber
sumber
Bukankah lebih mudah untuk membuat daftar perintah Anda di file shell yang terpisah, mis. Command.sh, tanpa nohup.
Kemudian Anda menelepon:
sumber
Yang lain sudah menjawab
nohup
. Sebagai catatan praktis: Saya sarankan melakukan hal semacam ini dalam satuscreen
atautmux
sesi. Dengan begitu Anda dapat memutuskan, kemudian menghubungkan kembali nanti dan melihat output dan hasil akhir.sumber
Akan lebih sederhana seperti ini:
Namun ini dapat menyebabkan masalah jika URL berisi karakter khusus sehingga untuk opsi yang lebih aman Anda dapat menggunakan:
sumber
sh -c
adalah melalui argumen terpisah, yang dapat diakses melalui parameter posisi ($0
,$1
, ...). Tidak ada cara mudah atau sederhana untuk mengutip argumen dengan benar untuk penguraian string. Upaya Anda untuk menggunakan tanda kutip ganda yang lolos gagal jika$url
itu sendiri berisi tanda kutip ganda. Cobaa='problem"'; sh -c "echo \"$a\""
sendiri dan lihat - Anda seharusnya mendapatkan kesalahan sintaksis karenash -c
mencoba menjalankannyaecho "problem""
.$url
dan$url2
digunakan.