ssh 執行多條命令包含awk的用法


格式:ssh user@ip command

單條命令:ssh user@ip command1

多條命令:ssh user@ip "command1;command2"

 

不加雙引號的情況 ssh user@ip command1 | command2: 其中command1在遠程機器上執行,command2在本機器執行

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

 

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

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

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

 

 

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

另外注意 ssh user@ip "cmd1 && cmd2" 和 ssh user@ip "cmd1 ; cmd2" 還有 ssh user@ip "cmd1 || cmd2"的區別:

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

 

ssh user@ip "echo $PATH"  輸出的是本機PATH值;ssh user@ip "echo \$PATH" 輸出的是遠端ip的PATH值。

 

https://stackoverflow.com/questions/14707307/how-to-use-bash-awk-in-single-ssh-command

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM