Linux 监视命令的意外行为

Linux 监视命令的意外行为,linux,command,watch,Linux,Command,Watch,下面我想用来监视目录中文件数量的命令没有动态显示所需的值 watch "echo \`ls -l| wc -l\`" 然而,下面的命令工作得很好 watch "ls -l| wc -l" 这种行为的解释是什么 这是因为shell在执行watch之前会展开backticks。如果您使用set-x,您将看到实际结束调用的命令 watch "echo 42" 这就解释了为什么它总是一样的 您可以使用反斜杠转义`,以逐字传递: watch "echo \`ls -l | wc -l\`" 或者更

下面我想用来监视目录中文件数量的命令没有动态显示所需的值

watch "echo \`ls -l| wc -l\`"
然而,下面的命令工作得很好

watch "ls -l| wc -l"

这种行为的解释是什么

这是因为shell在执行
watch
之前会展开backticks。如果您使用
set-x
,您将看到实际结束调用的命令

watch "echo 42"
这就解释了为什么它总是一样的

您可以使用反斜杠转义
`
,以逐字传递:

watch "echo \`ls -l | wc -l\`"
或者更容易地使用单引号,它禁止所有扩展:

watch 'echo `ls -l | wc -l`'

Stack Overflow是一个关于编程和开发问题的网站。这个问题似乎离题了,因为它与编程或开发无关。请参见帮助中心中的。也许或者会是一个更好的提问的地方。也看到