動的ファイルの行を監視したいので、これにはwatch
コマンドを使用します。 test-status
とiplist_test
の2つのファイルがあります。 iplist_test
で何かを制御し、この出力をtest-status
に入力します。 iplist_test
ファイルには150行あり、14/150
や25/150
などの結果を表示したい。これには次のコマンドを使用します。
watch -n .1 echo -e "$(cat test-status | wc -l)\/$(cat iplist_test | wc -l)"
このコマンドはwatch
コマンドのようには機能せず、静的です。ライブ結果のために手動で更新します。私のコマンドの何が問題になっていますか?
watch
が開始する前に$()
がシェルによって解決されるため、出力は静的です。
_''
_で引用すると役立つはずです。一重引用符は展開を防ぎます。このようにして、$()
は文字通りwatch
に渡され、毎回解析されます。
_watch -n .1 'echo -e "$(cat test-status | wc -l)/$(cat iplist_test | wc -l)"'
_
また、cat
を誤用します。これは、不要なcat
プロセスなしで機能するはずです。
_watch -n .1 'echo -e "$(<test-status wc -l)/$(<iplist_test wc -l)"'
_