そのため、「tmp_output.txt」などの出力ファイルに書き込むbashスクリプト「example.sh」があります。 (データがすでに存在する場合は、ファイルを消去して再作成します)
watchコマンドを使用して2秒ごとに「example.sh」を実行し、「tmp_output.txt」の変更を表示するにはどうすればよいですか?
watchコマンドはbashスクリプトで使用する必要があります。
答え1
watch
デフォルトでは、コマンドはシェルを介して実行されるため、ファイルの書き込みがexample.sh
無条件の場合は、スクリプトを実行してcat
出力ファイルを実行させることができます。
watch 'example.sh; cat tmp_output.txt'
ただし、もちろん、スクリプトを標準出力に印刷する方が柔軟性が高いため、出力を直接表示したり、必要に応じてファイルにリダイレクトしたりできます。
watchコマンドはbashスクリプトで使用する必要があります。
どういう意味なのかよくわかりません。watch
無限に実行され、各実行中に画面を消去するなどの点を考慮すると、非対話型の使用には実際には適していません。また、watch
スクリプト自体でスクリプトを実行するのはやや循環的です。
もちろん、スクリプトで次のことができます。
while true; do
# do some work
# write to tmp_output.txt etc.
cat tmp_output.txt # display it
sleep 2 # sleep and repeat
done