考虑这样的工具watch可以接受另一个命令(例如ls -l),如下所示:
watch ls -l
# or equivalently
watch 'ls -l'
Run Code Online (Sandbox Code Playgroud)
如果命令更复杂,那么如果当前 shell 或 get 解释诸如$variable、*、|或;之类的内容,那么一切都与引用/转义有关。这两个命令是不同的:&&watch
watch echo "$$"
watch 'echo "$$"'
Run Code Online (Sandbox Code Playgroud)
这些也是:
watch date ; echo done
watch date \; echo done
Run Code Online (Sandbox Code Playgroud)
ssh类似,它可以接受一个或多个参数并构建一个要在服务器上运行的命令。如果本地 shell 解释等,或者远程 shell 则$variable取决于引用/转义。|
有些命令sh -c需要包含代码的单个参数,但引用/转义的需求是相似的。事实上watch(或ssh) 为sh -c或类似的命令构建了这个单一参数。
我已经有了想要提供给或或类似工具的确切命令。命令是从历史记录中获取的,或者粘贴到命令行中或者键入,就像要直接执行一样;它逐字在我的命令行中。在使用类似工具之前,不应扩展或解释命令中的任何内容。如果是这样,则意味着所有扩展和解释都应该稍后定期进行。如果是这样,则意味着它应该发生在服务器上。watchsshwatchwatchssh …