Anda juga dapat menggunakan metode EOF Dokumen Di Sini untuk membuat skrip multi-baris dengan cepat. Keuntungan utamanya, adalah Anda dapat menggunakan tanda kutip ganda tanpa keluar itu:
timeout 1s bash <<EOF
sleep 2s
echo "something without escaping double quotes"
EOF
Catatan:
- Penutupan EOF tidak boleh mengikuti spasi/tab, tetapi berada di awal baris terakhir.
- Pastikan Anda telah mengekspor fungsi lokal dengan
export -f my_func
atauset -o allexport
untuk semua fungsi (sebelum mendeklarasikannya). Ini relevan untuk jawaban sebelumnya juga, karena memanggil bash/sh menjalankan proses di sesi baru, tidak mengetahui fungsi lingkungan lokal.
timeout
bukan utilitas shell dan tidak melakukan pemrosesan gaya shell. Itu harus diberikan satu perintah tunggal untuk dieksekusi. Namun, perintah itu dapat memiliki sejumlah argumen. Untungnya, salah satu perintah yang bisa Anda berikan adalah bash
:
timeout 1 bash -c '{ sleep 2; echo something; }'
Tentu saja, dalam bentuk ini, kawat gigi sekarang tidak berguna:
timeout 1 bash -c 'sleep 2; echo something'
Di sini, bash
adalah perintah timeout
mengeksekusi. -c
dan sleep 2; echo something
adalah argumen untuk perintah itu.
Apa efek pengaturan soket linux - prioritas tinggi?
Composer Fatal error:Deklarasi Fxp... harus kompatibel dengan ...AbstractAssetsRepository.php on line 334