GNU/Linux >> Belajar Linux >  >> Linux

Ulangi Perintah Unix Setiap X Detik Selamanya?

Ada perintah Unix bawaan repeat yang argumen pertamanya adalah berapa kali mengulangi perintah, di mana perintah (dengan argumen apa pun) ditentukan oleh argumen yang tersisa untuk repeat .

Misalnya,

% repeat 100 echo "I will not automate this punishment."

akan menggemakan string yang diberikan 100 kali dan kemudian berhenti.

Saya ingin perintah serupa – sebut saja forever – yang bekerja dengan cara yang sama kecuali argumen pertama adalah jumlah detik untuk berhenti di antara pengulangan, dan itu berulang selamanya. Misalnya,

% forever 5 echo "This will get echoed every 5 seconds forever and ever."

Saya pikir saya akan bertanya apakah hal seperti itu ada sebelum saya menulisnya. Saya tahu ini seperti skrip Perl atau Python 2 baris, tetapi mungkin ada cara yang lebih standar untuk melakukan ini. Jika tidak, jangan ragu untuk memposting solusi dalam bahasa skrip favorit Anda.

PS:Mungkin cara yang lebih baik untuk melakukan ini adalah dengan menggeneralisasi repeat untuk mengambil baik berapa kali pengulangan (dengan -1 berarti tak terhingga) dan jumlah detik untuk tidur di antara pengulangan.
Contoh di atas akan menjadi:

% repeat 100 0 echo "I will not automate this punishment."
% repeat -1 5 echo "This will get echoed every 5 seconds forever."

Jawaban yang Diterima:

Coba watch perintah.

Usage: watch [-dhntv] [--differences[=cumulative]] [--help] [--interval=<n>] 
             [--no-title] [--version] <command>`

Sehingga:

watch -n1  command

akan menjalankan perintah setiap detik (baik, secara teknis, setiap satu detik ditambah waktu yang dibutuhkan untuk command untuk dijalankan sebagai watch (setidaknya procps dan busybox implementasi) hanya tidur satu detik di antara dua menjalankan command ), selamanya.

Apakah Anda ingin meneruskan perintah ke exec bukannya sh -c , gunakan -x pilihan:

watch -n1 -x command

Di macOS, Anda bisa mendapatkan watch dari Port Mac:

port install watch

Atau Anda bisa mendapatkannya dari Homebrew:

brew install watch

Linux
  1. UNIX / Linux:10 Contoh Perintah Netstat

  2. UNIX / Linux :Contoh perintah bash history untuk mengulang perintah terakhir

  3. contoh perintah tail di UNIX/Linux

  1. Cara Menjalankan atau Mengulang Perintah Linux Setiap X Detik Selamanya

  2. Ulangi perintah secara otomatis di Linux

  3. Masalah baris perintah Netcat

  1. Buang Stdout Of A Command Selama T Detik?

  2. Tonton:Ulangi Perintah Unix atau Skrip Shell setiap N detik

  3. 5 Contoh Perintah Traceroute UNIX / Linux