watch를 사용할 때 업데이트된 출력 가져오기

watch를 사용할 때 업데이트된 출력 가져오기

나는 사용한다보다파일 변환 진행 상황을 모니터링합니다.

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이에 대해 모르기 때문에 다시 평가하지 않습니다.

관련 정보