我正在尝试编写一个脚本来登录多个远程服务器并在每个服务器中执行脚本。 但是,我想通过ssh传递一个变量。像这样:
var="/home/dir/"
ssh -T $mchname <<'ENDSSH'
$var"run_script" < input > output &
ENDSSH
这种天真的尝试不起作用($ var只是null)。什么是正确的语法?提前谢谢。
答案 0 :(得分:4)
从ENDSSH
左右删除引号。它们阻止了here document中变量的扩展。
答案 1 :(得分:2)
试试这个:
var="/home/dir/"
ssh -T $mchname VAR=$var 'bash -s'<<'ENDSSH'
$VAR"run_script" < input > output &
ENDSSH