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

Shell- not able to produce log output of script

我正在尝试运行遵循命令

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&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。

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

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