web-dev-qa-db-ja.com

EOFで変数を送信し、ホスト変数を使用する

変数をソースからホストに送信し、ホストスクリプトを実行します。これが私のコードです:

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

2
user4912329

ローカルシェルでは$var1を展開し、リモートシェルでは$var2を展開します。

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