ウォッチを使用するときに更新された出力を取得する

ウォッチを使用するときに更新された出力を取得する

私は使うよりファイル変換の進行状況を監視します。

watch -n 2 "echo Converted: $(ls *.mp3 | wc -l) of $(ls *.wav | wc -l) files"

watch構文を使用してコマンド置換を使用すると、$(command)watchコマンドが二重引用符で再実行されるたびに値は更新されません。これを正しく行う方法は?これはさまざまな「進行」モニターを含む単純なスクリプトなので、コマンドを維持し、次のことをwatch避けたいと思います。PV

ベストアンサー1

簡単に言うと:次のように単一引用符を使用する必要があります。

watch -n 2 'echo Converted: $(ls *.mp3 | wc -l) of $(ls *.wav | wc -l) files'

説明する

二重引用符は、Bashに文字列補間を実行するように指示します。今後コマンドを に渡すwatchと、Bash はそのサブシェルを評価し、出力を挿入してから shebang 全体を に渡します。watchこれは分からないので再評価しません。

おすすめ記事