You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

远程执行本地Shell脚本并向本地文件写入内容的问题求助

解决本地脚本在远程执行并写入本地文件的问题

我懂你遇到的困扰了——想让远程服务器上运行的脚本往本地的output.txt写内容,但直接传本地路径肯定行不通,毕竟远程机器根本访问不到你本地的文件系统呀!

先拆解下你原来命令的问题:ssh user@host "bash -s" < script.sh /path/to/output.txt里的/path/to/output.txt是作为本地ssh命令的参数,根本没传给远程的bash -s。就算传过去了,远程机器也找不到这个本地路径,自然写不进去。

下面给你两种可行的解决方案:

方案1:修改脚本,让远程输出到标准输出,本地再追加到文件

把你的script.sh改成直接输出内容到标准输出,不用写文件:

#!/bin/sh
echo "hello from remote server"

然后运行这个命令,远程的输出会通过ssh通道传回本地,追加到你的output.txt:

ssh user@host "bash -s" < script.sh >> /path/to/output.txt

方案2:不修改脚本,给远程传一个特殊的"文件参数"

如果你不想改动原脚本,那可以把远程的标准输出作为参数传给脚本,这样脚本里的>> $file就会把内容输出到远程的stdout,再由ssh传回来本地写入文件:

ssh user@host "bash -s /dev/stdout" < script.sh >> /path/to/output.txt

这里/dev/stdout是远程机器上的标准输出设备,脚本往这个"文件"写内容,其实就是输出到远程的终端(也就是ssh的通道),本地再把这个内容追加到output.txt里。

核心逻辑补充

本质上,远程服务器没法直接操作你的本地文件,必须把需要写入的内容通过ssh的标准输出通道传回本地,再由本地的shell负责把内容追加到output.txt中。

内容的提问来源于stack exchange,提问作者Gary

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.22 08:22:40