通过 ssh 执行命令时如何避免“不明确的重定向”

通过 ssh 执行命令时如何避免“不明确的重定向”

我正在尝试通过 ssh 在远程服务器上执行脚本。

该命令应转到后台并在注销后继续运行。命令的结果应重定向到远程站点上的 out.log。

ssh 进程应该退出而不等待命令

远程 shell 是 csh

我尝试了以下行的各种版本(引用、大括号...)

ssh target.host "nohup csh longrunning.sh > out.log 2>&1 &; exit"

要么我的尝试在远程站点上没有执行任何操作,要么由于多个&符号而导致不明确的重定向。

远程站点是一个最小的 FreeBSD 系统,没有screen安装类似的工具

答案1

你不就是在寻找吗

ssh target.host "nohup csh longrunning.sh >& out.log &; exit"

对于您想要实现的目标来说,这似乎是 csh 的正确语法。

您使用的语法与 csh 不兼容,因为它的语法与 Bourne shell 不兼容。

相关内容