回答:
5秒ごとに見る...
watch -n 5 ls -l
変更を視覚的に確認したい場合は--differences
、ls
コマンドの前に追加してください。
OSXのmanページによると、
--cumulativeオプションを使用すると、「スティッキー」が強調表示され、変更されたすべての位置の実行中の表示が表示されます。-tまたは--no-titleオプションは、間隔、コマンド、現在の時刻を表示するヘッダーと、次の空白行をオフにします。
Linux / Unix manページはここにあります
watch mysql dbname -e \"show processlist\;\"
brew install watch
while true; do
sleep 5
ls -l
done
watch
また、画面をクリアするという残念な副作用があるため、ループが役立つ場合があります。どちらを使用するかは、出力の目的の形式によって異なります。
--differences
それらを強調表示するために使用できることは注目に値します(ターミナルの再描画が心配な場合)
watch
。たとえば、呼び出しごとに乱数を生成する場合など、監視は機能しませんwatch -n 1 echo ${RANDOM}
。ランダムは一度だけ呼ばれます。
「ウォッチ」ではBusyboxの1秒未満が許可されませんが、「スリープ」では許可されます。それがあなたにとって重要な場合は、これを試してください:
while true; do ls -l; sleep .5; done
sleep
はすでに戻ります0
。そのため、私は次のものを使用しています:
while sleep 3 ; do ls -l ; done
これはミハイルのソリューションよりも少し短いです。マイナーな欠点は、ターゲットコマンドを初めて実行する前にスリープすることです。
コマンドにパイプや引用符などの特殊文字が含まれている場合は、コマンドに引用符を埋め込む必要があります。たとえば、を繰り返すls -l | grep "txt"
には、watchコマンドは次のようになります。
watch -n 5 'ls -l | grep "txt"'
を使用すると、cronなしで定期的にコマンドを実行できますwhile
。
コマンドとして:
while true ; do command ; sleep 100 ; done &
[ ex: # while true; do echo `date` ; sleep 2 ; done & ]
例:
while true
do echo "Hello World"
sleep 100
done &
最後の&
ループはバックグラウンドで行われるので、最後を忘れないでください。ただし、コマンド「ps -ef | grep your_script」を使用してプロセスIDを見つける必要がある場合は、それを強制終了する必要があります。そのため、スクリプトを実行するときに「&」を追加してください。
# ./while_check.sh &
これはスクリプトと同じループです。「while_check.sh」ファイルを作成し、これを次のように配置します。
#!/bin/bash
while true; do
echo "Hello World" # Substitute this line for whatever command you want.
sleep 100
done
次に、次のように入力して実行します bash ./while_check.sh &
echo $!
各バックグラウンドプロセスの起動後にスクリプトを変更できます。これは、バックグラウンドで起動された最後の子プロセスのPIDです。
「ドリフト」を避けたい場合、つまり、コマンドにかかる時間に関係なく、コマンドがN秒ごとに実行されるようにしたい場合(N秒未満であると想定)、コマンドを5秒ごとに1回繰り返すbashを以下に示します。 2番目の精度(それが追いつかない場合は警告を出力します):
PERIOD=5
while [ 1 ]
do
let lastup=`date +%s`
# do command
let diff=`date +%s`-$lastup
if [ "$diff" -lt "$PERIOD" ]
then
sleep $(($PERIOD-$diff))
elif [ "$diff" -gt "$PERIOD" ]
then
echo "Command took longer than iteration period of $PERIOD seconds!"
fi
done
スリープは1秒までしか正確ではないため、まだ少しドリフトする可能性があります。この正確さは、dateコマンドを独創的に使用することで改善できます。
以下を実行して、サイズのみをフィルタリングできます。ファイルが呼び出された somefilename
場合、次のことができます
while :; do ls -lh | awk '/some*/{print $5}'; sleep 5; done
多くのアイデアの1つ。
watch -n 5 'ls -l
ls -l
5秒ごとにコマンドを実行します
Every 5.0s: ls -l Fri Nov 17 16:28:25 2017
total 169548
-rw-rw-r-- 1 sachin sachin 4292 Oct 18 12:16 About_us_Admission.doc
-rw-rw-r-- 1 sachin sachin 865 Oct 13 15:26 About_us_At_glance.doc
-rw-rw-r-- 1 sachin sachin 1816 Oct 13 16:11 About_us_Principle.doc
-rw-rw-r-- 1 sachin sachin 1775 Oct 13 15:59 About_us_Vission_mission.doc
-rw-rw-r-- 1 sachin sachin 1970 Oct 13 16:41 Academic_Middle_school.doc
-rw-rw-r-- 1 sachin sachin 772 Oct 16 16:07 academics_High_School.doc
-rw-rw-r-- 1 sachin sachin 648 Oct 16 13:34 academics_pre_primary.doc
-rw-rw-r-- 1 sachin sachin 708 Oct 16 13:39 academics_primary.doc
-rwxrwxr-x 1 sachin sachin 8816 Nov 1 12:10 a.out
-rw-rw-r-- 1 sachin sachin 23956 Oct 23 18:14 Ass1.c++
-rw-rw-r-- 1 sachin sachin 342 Oct 23 22:13 Ass2.doc
drwxrwxr-x 2 sachin sachin 4096 Oct 19 10:45 Backtracking
drwxrwxr-x 3 sachin sachin 4096 Sep 23 20:09 BeautifulSoup
drwxrwxr-x 2 sachin sachin 4096 Nov 2 00:18 CL_1
drwxrwxr-x 2 sachin sachin 4096 Oct 23 20:16 Code
drwxr-xr-x 2 sachin sachin 4096 Nov 15 12:05 Desktop
-rw-rw-r-- 1 sachin sachin 0 Oct 13 23:12 doc
drwxr-xr-x 4 sachin sachin 4096 Nov 6 21:18 Documents
drwxr-xr-x 27 sachin sachin 12288 Nov 17 13:23 Downloads
-rw-r--r-- 1 sachin sachin 8980 Sep 19 23:58 examples.desktop
簡潔なソリューション。これは、失敗するまでコマンドを繰り返し実行する場合に特に役立ち、すべての出力を表示できます。
while ls -l; do
sleep 5
done