linux下命令執行結果作為其他命令輸入引數

2021-08-07 23:17:20 字數 1218 閱讀 7014

**原文:

比如這裡要獲取redis-server這個程序的pid

[plain]view plain

copy

# ps -ef | grep redis-server  

root      60415      1 93 feb17 ?        8-04:12:36 redis-server *:6379  

root      61823  59236  0 01:26 pts/1    00:00:00 grep --color=auto redis-server  

但是我們要獲取具體的60415這個值,可以通過下面命令來獲取命令

[plain]view plain

copy

ps -ef | grep redis-server | grep -v grep | awk ''   

簡單介紹awk,就是把檔案逐行的讀入,以空格為預設分隔符將每行切片,切開的部分再進行各種分析處理。

這裡執行乙個名字為test的c程式,需要把pid作為輸入引數。

[plain]view plain

copy

./test `ps -ef | grep redis-server | grep -v grep | awk ''`  

符號:` `

名稱:反引號,上分隔符

位置:反引號(`)這個字元一般在鍵盤的左上角,數字1的左邊,不要將其同單引號(』)混淆

作用:反引號括起來的字串被shell解釋為命令列,在執行時,shell首先執行該命令列,並以它的標準輸出結果取代整個反引號(包括兩個反引號)部分

[plain]view plain

copy

ps -ef | grep redis-server | grep -v grep | awk ''  | xargs ./test  

命令:xargs

xargs是給命令傳遞引數的乙個過濾器,也是組合多個命令的乙個工具。它把乙個資料流分割為一些足夠小的塊,以方便過濾器和命令進行處理。通常情況下,xargs從管道或者stdin中讀取資料,但是它也能夠從檔案的輸出中讀取資料。xargs的預設命令是echo,這意味著通過管道傳遞給xargs的輸入將會包含換行和空白,不過通過xargs的處理,換行和空白將被空格取代。

參考1:

參考2:

linux下命令執行結果作為其他命令輸入引數

比如這裡要獲取redis server這個程序的pid ps ef grep redis server root 60415 1 93 feb17 8 04 12 36 redis server 6379 root 61823 59236 0 01 26 pts 1 00 00 00 grep co...

linux下命令執行結果作為其他命令輸入引數

比如這裡要獲取redis server這個程序的pid ps ef grep redis server root 60415 1 93 feb17 8 04 12 36 redis server 6379 root 61823 59236 0 01 26 pts 1 00 00 00 grep co...

linux下把命令執行的結果輸出

我們知道在linux下當我們想把文字用命令輸入到乙個文字下時可以用echo命令 例 echo nihao z.txt 比如我執行以下命令 myisamchk var lib mysql mysql 我想把該命令的螢幕輸出儲存為檔案 lyw error.txt,因此我用以下命令 myisamchk v...