Shell-无法生成脚本的日志输出

时间:2018-05-18 14:28:21

标签: shell ksh

我正在尝试运行以下命令

ssh xxx@99.99.99.99 ". ./.profile; myscript  2&1 >> /tmp/2244455.log" 

但它出现了以下错误

sh: 1: execute permission denied

当我在远程服务器上运行myscript 2&1 >> /tmp/2244455.log时,它运行正常。

同样,当我运行ssh xxx@99.99.99.99 ". ./.profile; myscript时,它运作正常。

请你帮我解决这个问题

myscript不归xxx所有,权限是

ls -ltrh myscript -rwxr-xr-x 1 yyy other 11K May 18 15:04 myscript

2 个答案:

答案 0 :(得分:1)

2& 1语法错误;如果要将stderr重定向到stdout,则需要:

2>&1

你也有没有正确嵌套的引号;反引号``与双引号重叠。编辑:我看到你已经编辑了这个问题,但现在你的命令开头有一个不配对的反击

所以,我猜猜你用引号后的内容,但你的整个命令可能是:

ssh xxx@99.99.99.99 ". ./.profile; myscript  2>&1 >> /tmp/2244455.log"

这将在远程99.99.99.99计算机上创建/tmp/2244455.log。

答案 1 :(得分:1)

ssh命令周围放置背包会导致本地shell尝试将其输出作为新命令行运行。摆脱那些,如果这不仅仅是格式化问题的错字。

真正的问题是您错过了重定向上的>2>&1,而不是2&1> less版本只是将2作为参数添加到命令中,然后在后台运行名为1的命令时尝试在后台运行该命令。