ssh 传递多个值

ssh 传递多个值

我想打开一些端口

for i in centos7{3..4};do ssh -T $i "for ir in 53 80 443 3000 3306 5910-5930 5432 8140 8443 10090-10100 20 21;do firewall-cmd --permanent --zone=public --add-port=$ir/tcp;done"; done

返回

Error: INVALID_PORT
Error: INVALID_PORT
Error: INVALID_PORT
Error: INVALID_PORT

该命令很好,因为如果我在单个主机上执行单个命令返回

success
success
success
success
success
success
success
success
success

问题是,如何在 ssh 上传递多个变量?

答案1

$ir正在由本地 shell 进行扩展,而不是按照您在远程端的预期进行扩展。尝试转义$… --add-port=\$ir/tcp …

或者使用单引号而不是双引号,因为您不希望命令中的任何内容在本地扩展。

相关内容