Shell
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 上傳遞多個變數?
$ir
正在由您的本地 shell 擴展,而不是您在遠端端的期望。嘗試轉義$
:… --add-port=\$ir/tcp …
或者使用單引號而不是雙引號,因為您不希望命令中的任何內容在本地擴展。