Shell

ssh 傳遞多個值

  • October 24, 2015

我想打開一些我做的埠

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 …

或者使用單引號而不是雙引號,因為您不希望命令中的任何內容在本地擴展。

引用自:https://unix.stackexchange.com/questions/238429