Bash 远程主机上文件的EOF

Bash 远程主机上文件的EOF,bash,shell,sh,eof,Bash,Shell,Sh,Eof,我需要通过ssh向远程机器“cat”一个shell内文本脚本。 为了简单起见,这是必需的,所以我不需要保留额外的文件 比如说 #!/bin/sh VAR="some" VAR1="something" cat << EOF apple green tree EOF ---> cat to file.txt on remote machine do some command do some command1 exit 0 #/垃圾箱/垃圾箱 VAR=“一些” VAR1=

我需要通过ssh向远程机器“cat”一个shell内文本脚本。 为了简单起见,这是必需的,所以我不需要保留额外的文件

比如说

#!/bin/sh
VAR="some"
VAR1="something"

cat << EOF
apple
green
tree
EOF   ---> cat to file.txt on remote machine

do some command
do some command1
exit 0
#/垃圾箱/垃圾箱
VAR=“一些”
VAR1=“某物”
远程机器上的cat to file.txt
指挥
执行一些命令
出口0

如果要在运行时生成文件内容,请尝试以下操作:

cat <<EOF | ssh remote 'cat - > /tmp/my_remote_file.txt'
apple
green
tree
EOF

cat只想给大家记下。上面的示例对于纯文本很好,但如果herdeoc包含变量,则将进行替换。因此,用单引号保护heredoc短语以保持一切完整是非常重要的
比如说

cat <<'EOF' | ssh remote 'cat - > /tmp/my_remote_file.txt'
host=$(uname -a)
echo $host
EOF

cat可以省略
-
-足够了
cat>/somefile
:)是的,它确实适用于测试样本,谢谢!但是我的真实想法给出了一个错误-cat:/tmp/viewgpu:没有这样的文件或目录,所以herdoc中的脚本开始在本地机器上执行(这不是必需的),只需要将内容传输到远程pc机。如果您使用bash,最好使用
$(uname-a)
而不是
`uname-a`
。在你的问题中,你没有提到任何关于“heredoc”内部的“变量”。。。第三,在示例代码中,您的意思可能是
echo$host
。。。