使用bash将阵列传递到远程服务器

使用bash将阵列传递到远程服务器,bash,shell,Bash,Shell,我在bash脚本中有一个包含ip地址的数组。我一个接一个地使用ssh连接到所有服务器,并使用heredoc在每台服务器上运行多个命令。从每个服务器,我想再次ssh到所有服务器并运行一些命令。下面是一些代码 for i in "${IP_ADDRESSES[@]}"; do ssh -i "$LOCAL_PEM_FILE" "$USER"@"$i" bash << HERE for j in "${IP_ADDRESSES[@]}"; do echo \$j HERE

我在bash脚本中有一个包含ip地址的数组。我一个接一个地使用ssh连接到所有服务器,并使用heredoc在每台服务器上运行多个命令。从每个服务器,我想再次ssh到所有服务器并运行一些命令。下面是一些代码

for i in "${IP_ADDRESSES[@]}"; do
ssh -i "$LOCAL_PEM_FILE" "$USER"@"$i" bash << HERE
    for j in "${IP_ADDRESSES[@]}"; do
    echo \$j
HERE
done
“${IP_地址[@]}”中i的
;做
ssh-i“$LOCAL\u PEM\u FILE”“$USER”@“$i”bash此处文档块中的数组不需要双引号:

for i in "${IP_ADDRESSES[@]}"; do
  ssh -i "$LOCAL_PEM_FILE" "${USER}@${i}" bash <<-HERE
    for j in ${IP_ADDRESSES[@]}; do
      echo \$j
    done
HERE
done
这会在每个数组元素之间添加单引号。

此处文档块中的数组不需要双引号:

for i in "${IP_ADDRESSES[@]}"; do
  ssh -i "$LOCAL_PEM_FILE" "${USER}@${i}" bash <<-HERE
    for j in ${IP_ADDRESSES[@]}; do
      echo \$j
    done
HERE
done

这在每个数组元素之间添加了一个引号。

我今天学到了一些全新的东西!Stackoverflow从未停止让我惊讶,让我意识到还有更多的东西要知道。今天我学到了一些全新的东西!Stackoverflow从不停下来让我惊讶,让我意识到还有很多东西需要知道。