相关疑难解决方法(0)

是否可以从本地运行的脚本内部通过 ssh 将 HEREDOC 发送到远程主机?

我本质上想在机器 A 上运行一个脚本,该脚本将通过 SSH 连接到机器 B,在 B 上执行命令,并将输出返回到机器 A。

所以我正在创建一个 csh 脚本来做到这一点,如果可能的话。

例如,此答案中的此解决方案适用于命令行:

ssh user@host << 'ENDSSH'
ls -l
ENDSSH
Run Code Online (Sandbox Code Playgroud)

我可以验证它是在远程而不是本地运行 ls。

但是,我希望能够在本地运行的 csh 脚本中的反引号内执行此操作。那可能吗?

我知道可以通过 SSH 连接并运行远程脚本,但这不是我的情况。

我还听说可以通过 SSH 发送本地存储的第二个脚本(我也没有弄清楚),但我喜欢将所有命令都包含在原始脚本中的想法,因此是 HEREDOC。

我知道这是一个非常特别的问题,但如果有办法,知道如何做会很酷。

行不通的事情

1)

`ssh user@host<<'ENDSSH'`
`echo "ls -l"`
`echo "ENDSSH"`
Run Code Online (Sandbox Code Playgroud)

这给出了错误:

stty: standard input: Invalid argument. stty: standard input: Invalid argument. Warning: Command not found

然后它在ls -l本地运行,然后它尝试在ENDSSH本地运行,当然由于找不到命令而失败。

2)

`ssh user@host<<'ENDSSH'`
echo "ls -l"
echo "ENDSSH"
Run Code Online (Sandbox Code Playgroud)

与上面相同的问题,除了它只显示ls -lENDSSH作为文本。有道理……因为 HEREDOC …

ssh io-redirection csh

9
推荐指数
1
解决办法
1万
查看次数

标签 统计

csh ×1

io-redirection ×1

ssh ×1