skrip dijalankan hanya jika awk tidak menemukan angka yang lebih besar dari

Saya punya perintah ini:

program script.sh >/dev/null 2>&1 &

"Program" mengeksekusi "script.sh" hanya jika satu kondisi dari "program" benar. Dan saya ingin menambahkan kondisi lain di "script.sh" dengan awk atau sed.
contoh : if in the output of "program" is only one number greather than 60 do not send email if not send email keluaran programnya seperti ini :
program.log
peak: -5.19dB (not silent) peak: -74.75dB (X seconds of silence) **SILENCE** 59 seconds left in grace period.

Dan saya tidak ingin menulis output dari "program" pada disk (hanya jika memungkinkan)

Terima kasih!


person Snowman    schedule 15.05.2016    source sumber
comment
edit pertanyaan Anda untuk menyertakan masukan sampel yang ringkas dan dapat diuji serta keluaran yang diharapkan.   -  person Ed Morton    schedule 15.05.2016
comment
Saya pikir masalahnya sebenarnya ada di (execute_)script.sh.... kami ingin Anda membuka skrip itu... karena menurut saya silentjack hanya mendorong outputnya ke skrip itu. Keajaiban yang mengontrol pencetakan email Anda terjadi di dalam sana & di dalam sana kita perlu menambahkan tanda centang.   -  person Michael Back    schedule 15.05.2016
comment
@Snowman -- Akan sangat membantu bagi kami untuk menyimpan pertanyaan awal Anda, lalu menyalin juga versi konten yang sudah dibersihkan dari mengeksekusi_script.sh -- karena pertanyaan Anda benar-benar melibatkan Saya memiliki program ini yang memicu peristiwa yang dikirim ke skrip , tapi saya perlu menyimpan status dan melakukan sesuatu yang istimewa... Arah mana yang harus saya tuju untuk memperbaikinya?   -  person Michael Back    schedule 15.05.2016


Jawaban (1)


Saya pikir di dalam script.sh Anda, Anda memerlukan tes sebelum mengirim...

awk -F '[ (]+' '$7 > 90 { exit 1 }'

Jawabannya mungkin melibatkan penggunaan pipa bernama, tee + proses substitusi, tee + FD atau ...

https://unix.stackexchange.com/questions/28503/how-can-i-send-stdout-to-multiple-commands

person Michael Back    schedule 15.05.2016
comment
mungkin cara lain. Saya akan mencoba menjelaskannya. silentjack mengeksekusi perintah keinginan ketika SILENCE dipicu. silentjack menghitung detik lalu mengeksekusi. Setelah itu, ada masa tenggang, hitung lagi dan jalankan jika masih diam. Tapi dalam masa tenggang tidak terdeteksi apa pun. Dan saya tidak bisa memberi masa tenggang yang lama. Saya ingin menghindari pengiriman email lagi dan lagi. Saya menggunakan msmtp dan mutt untuk mengirim email melalui akun Google. msmtp menulis log dimulai dengan tanggal dan waktu mengirim email. mungkin lebih sederhana untuk menghitung ini ... entahlah. @Michael Hitam : terima kasih! - person Snowman; 15.05.2016
comment
Wah! Manusia Salju, kamu benar-benar bersenang-senang! Saya rasa Anda perlu menyimpan beberapa status dalam file dari setiap peristiwa silentjack untuk eksekusi selanjutnya. Anda dapat menggunakan campuran AWK dan shell untuk ini, atau cukup gunakan AWK (menurut saya skipjack akan menggunakan filter sederhana apa pun yang dapat dieksekusi sebagai skrip panggilan baliknya). - person Michael Back; 15.05.2016
comment
@Ed -- Saya mencoba ini pada baris perintah dan pada suatu waktu versi dengan strtonum() berfungsi... jadi saya hanya menyalin versi itu sebagai draf jawaban... Saya baru saja memperbaruinya untuk menarik strtonum( ) keluar. - person Michael Back; 15.05.2016