1. 程式人生 > >ssh 多條命令執行

ssh 多條命令執行

 

 

格式:ssh [email protected] command

單條命令:ssh [email protected] command1

多條命令:ssh [email protected] "command1;command2"

 

不加雙引號的情況 ssh [email protected] command1 | command2: 其中command1在遠端機器上執行,command2在本機器執行

ssh [email protected] "ip a | grep '{print \$2}'"  這種情況使用的話,要對$符號進行轉義

 

下圖所示,第一條命令:awk的命令功能並沒有生效,需要對$進行轉義;

第二條命令:\$轉義後生效,遠端直接返回匹配結果;

第三條命令:結果來看和第二條相同,其實,uname -a實在遠端機器執行,執行完的全部資訊返回來,然後又在本地機器進行awk過濾

 

 

注意這種方式的ssh連接獲得的環境變數和登入之後獲得的環境變數不一樣,所有,存在某些命令這種方式無法執行,但是登入之後可以執行的情況,解決辦法是,給出命令列的絕對路徑

另外注意 ssh [email protected] "cmd1 && cmd2" 和 ssh

[email protected] "cmd1 ; cmd2" 還有 ssh [email protected] "cmd1 || cmd2"的區別:

&&表示前面執行成功後執行後面的命令,||表示執行失敗了執行後面的命令;“;”表示依次執行兩條命令

 

ssh [email protected] "echo $PATH"  輸出的是本機PATH值;ssh [email protected] "echo \$PATH" 輸出的是遠端ip的PATH值。