我正在尝试在脚本中运行命令,类似这样:
ssh user@host:/bin/echo > /home/path/file.log
现在,当我在命令行上运行此命令时,它工作正常,但是当放入脚本(shell或ruby)时,它会说: / bin / sh:/home/path/*.log:没有这样的文件或目录
我错过了什么吗?
谢谢!
更新
奇怪的是,当我使用putty时,即使在shell上也没有执行同样的事情。我已经验证了远程机器上存在的路径和文件正在被ssh进去。
答案 0 :(得分:1)
您需要遍历文件。如果它从命令行运行,那么您的交互式shell不是标准shell。
for f in /home/path/*.log; do
:>"$f"
done
还要注意使用null命令;在许多shell中,你根本不需要命令。您的echo
会在每个文件的开头放置一条没有吸引力的空行。
如果您尝试远程运行,则需要引用它:
ssh user@remote 'for f in /home/path/*.log; do :>"$f"; done'
答案 1 :(得分:0)
我在报价时工作正常: ssh user @ host:“/ bin / echo> /home/path/file.log”