Linux
使用參數遠端、互動地執行本地 bash 腳本
從我的所有測試來看,似乎不可能在允許互動式 shell 和傳遞參數的同時遠端執行本地腳本。
互動式*(參數嘗試在雙引號內或雙引號外作為單獨的命令執行)*
ssh -t server "$(<${scriptname})"
參數*(非互動式 ofc)*
cat $scriptname | ssh -t server bash -s - "${args[@]}"
我真的嘗試過各種方式。是否可以在發送參數的同時啟動互動式 shell 並執行腳本?
我相信通過考慮將遠端上的 $@ 參數的值更改為本地傳遞的值來回答我自己的問題,並且它似乎在我的測試中有效。
這是我關於切換的最終解決方案 $ 1 and $ 2
本地腳本
#!/bin/bash echo "I wanna read you $1 and $2" read yn if [ "$yn" == "y" ]; then echo "I read you" else echo "I could not read you" fi
命令
ssh -t $server "set -- "${@:1:2}"; $(<${script})"
結果 (當發送 test1 和 test2 作為參數時)
I wanna read you test1 and test2 y I read you!
希望這可以幫助任何未來的訪客