(这是 RHEL 8.4,如果重要的话。)
该echo
脚本中第 5 行和第 7 行的命令在本地主机上运行,但第hostname
6 行和第 8 行的命令按预期在远程主机上运行。
为什么第 5 行和第 7 行在本地主机上运行?更重要的是,如何让它们在远程主机上运行?
编辑:我不想传递变量。我希望在远程服务器上单独定义和使用变量。
1 #!/bin/bash
2 export foo=bar
3 ssh -q ${1} <<EOF
4 export foo=blarge
5 echo $foo
6 hostname
7 echo $foo
8 hostname
9 EOF
10 hostname
使用引用的 EOF:
您没有指定您使用的外壳,但
man bash
例如它说: