Shell

使用 EOF 發送變數並使用主機變數

  • September 1, 2017

我想將變數從源發送到主機,並執行主機腳本。這是我的程式碼:

var1=1
ssh -p 42 root@xxx /bin/bash << EOF
 var2=2
 echo $var1
 echo $var2
EOF

返回 :1

var1=1
ssh -p 42 root@xxx /bin/bash << \EOF
 var2=2
 echo $var1
 echo $var2
EOF

返回 :2

如何退貨:

1
2

?

您希望本地 shell 擴展$var1,但遠端 shell 擴展$var2

var1=1
ssh -p 42 root@xxx /bin/bash << EOF    # un-quoted/escaped
 var2=2
 echo $var1
 echo \$var2
EOF

引用自:https://unix.stackexchange.com/questions/389797