GNU/Linux >> Belajar Linux >  >> Linux

Buang Stdout Of A Command Selama T Detik?

Saya sedang mengerjakan beberapa skrip batch yang melibatkan hal berikut:

  • Jalankan beberapa sub-proses yang tidak berhenti (secara asinkron)
  • Tunggu t detik
  • Lakukan tugas lain X untuk beberapa waktu
  • Hentikan subproses

Idealnya, saya ingin dapat membedakan stdout dari sub-proses yang telah dipancarkan sebelum X dari apa yang telah dipancarkan setelah X .

Beberapa ide muncul di benak saya, meskipun saya tidak tahu bagaimana saya akan menerapkannya:

  • Buang stdout untuk t detik
  • Sisipkan beberapa teks (misalnya, 'Tugas X dimulai') untuk memisahkan bagian secara visual
  • Pisahkan stdout menjadi berbagai aliran keluaran

Jawaban yang Diterima:

Meskipun Anda dapat memperumit masalah dengan exec dan perselisihan deskriptor file tambahan, saran kedua Anda adalah yang paling sederhana. Sebelum memulai X , echo string penanda ke dalam file log.

Semua perintah tersebut akan ditambahkan ke file yang sama, jadi mungkin ide yang baik untuk menambahkan semua output X dengan spidol, sehingga Anda dapat membedakan outputnya dari salah satu perintah sebelumnya yang masih berjalan. Sesuatu di sepanjang baris:

{ X; } | sed 's,^,[X say] ,'

Ini akan membuat analisis lebih lanjut menjadi lebih sederhana. Ini tidak aman dan untuk program yang sangat panjang lebar, kondisi balapan akan sering terjadi.

Jika Anda bersedia mengambil kesempatan untuk memecahkan satu baris log dan dapat mengganggu kumpulan pertama aplikasi tanpa konsekuensi, ini juga akan berhasil:

{ Y; } >> log &
sleep $t
kill -STOP %% # last job, like the same as %1
echo -e "nX started" >> log
kill -CONT %%
{ X; } >> log2

Linux
  1. Contoh Perintah DNF Untuk Pemula

  2. Bagaimana Cara Memecah File Seperti Split To Stdout Untuk Piping Ke Perintah?

  3. Masalah baris perintah Netcat

  1. 8 tips untuk baris perintah Linux

  2. lulus stdout sebagai nama file untuk utilitas baris perintah?

  3. Sintaks yang tepat untuk perintah id -r

  1. 12 Contoh Perintah IP untuk Pengguna Linux

  2. Perintah dir Linux untuk pemula (10 contoh)

  3. Bisakah perintah linux cat digunakan untuk menulis teks ke file?