Bash 在循环中使用ssh执行脚本

Bash 在循环中使用ssh执行脚本,bash,ssh,Bash,Ssh,我正在尝试编写一个脚本,其中我有一个循环,可以登录到多个远程机器,并在每台机器内执行一个脚本。以下是一个例子: for ((j=1; j < 2; j++)); do mchname="n"$j ssh -T $mchname <<'ENDSSH' ./run_script < input > output & ENDSSH done ((j=1;j

我正在尝试编写一个脚本,其中我有一个循环,可以登录到多个远程机器,并在每台机器内执行一个脚本。以下是一个例子:

for ((j=1; j < 2; j++)); do 

  mchname="n"$j

  ssh -T $mchname <<'ENDSSH'    
    ./run_script < input > output &    
  ENDSSH

done
((j=1;j<2;j++)的
for;做
mchname=“n”$j

ssh-T$mchname您的bash脚本中有一个问题。不能缩进herdoc end标记(脚本中的ENDSSH)

请尝试以下方法:

  ssh -T $mchname <<'ENDSSH'    
    ./run_script < input > output &    
ENDSSH
# ^ no indentation for that line
ssh-T$mchname输出&'

当您给
ssh
一个显式命令来运行时,
-T
是默认值,因此
ssh$mchname./run\u scriptoutput&'
。非常感谢!我决不会抓到那个!如果你使用'
ssh -T $mchname './run_script < input > output &'