-1
我想用來監視目錄中文件數量的以下命令不會動態顯示所需的值。監視命令的意外行爲
watch "echo \`ls -l| wc -l\`"
但是下面的命令工作正常。
watch "ls -l| wc -l"
這種行爲的解釋是什麼?
我想用來監視目錄中文件數量的以下命令不會動態顯示所需的值。監視命令的意外行爲
watch "echo \`ls -l| wc -l\`"
但是下面的命令工作正常。
watch "ls -l| wc -l"
這種行爲的解釋是什麼?
這是因爲在執行watch
之前,shell會擴展反引號。如果你使用set -x
,你會看到,在調用
watch "echo 42"
,實際上最終的命令,它解釋了爲什麼它總是一樣的。通過使用單引號,抑制所有擴展
watch "echo \`ls -l | wc -l\`"
或者更容易:
watch 'echo `ls -l | wc -l`'
PS:[停止使用反引號](http://mywiki.wooledge.org/BashFAQ/082 ) –
Stack Overflow是編程網站
你可以用一個反斜槓逃脫
'
從字面上傳遞和發展問題。這個問題似乎與題目無關,因爲它不涉及編程或開發。請參閱幫助中心的[我可以詢問哪些主題](http://stackoverflow.com/help/on-topic)。也許[超級用戶](http://superuser.com/)或[Unix&Linux堆棧交換](http://unix.stackexchange.com/)會是一個更好的地方。另請參閱[我在哪裏發佈關於Dev Ops的問題?](http://meta.stackexchange.com/q/134306) – jww