比如這裡要獲取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 --color=auto redis-server
但是我們要獲取具體的60415這個值,可以通過下面命令來獲取命令
ps -ef | grep redis-server | grep -v grep | awk ''
簡單介紹awk,就是把檔案逐行的讀入,以空格為預設分隔符將每行切片,切開的部分再進行各種分析處理。
這裡執行乙個名字為test的c程式,需要把pid作為輸入引數。
./test `ps -ef | grep redis-server | grep -v grep | awk ''`
符號:` `
名稱:反引號,上分隔符
位置:反引號(`)這個字元一般在鍵盤的左上角,數字1的左邊,不要將其同單引號(』)混淆
作用:反引號括起來的字串被shell解釋為命令列,在執行時,shell首先執行該命令列,並以它的標準輸出結果取代整個反引號(包括兩個反引號)部分
ps -ef | grep redis-server | grep -v grep | awk '' | xargs ./test
命令:xargs
xargs是給命令傳遞引數的乙個過濾器,也是組合多個命令的乙個工具。它把乙個資料流分割為一些足夠小的塊,以方便過濾器和命令進行處理。通常情況下,xargs從管道或者stdin中讀取資料,但是它也能夠從檔案的輸出中讀取資料。xargs的預設命令是echo,這意味著通過管道傳遞給xargs的輸入將會包含換行和空白,不過通過xargs的處理,換行和空白將被空格取代。
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 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 ...
linux下把命令執行的結果輸出
我們知道在linux下當我們想把文字用命令輸入到乙個文字下時可以用echo命令 例 echo nihao z.txt 比如我執行以下命令 myisamchk var lib mysql mysql 我想把該命令的螢幕輸出儲存為檔案 lyw error.txt,因此我用以下命令 myisamchk v...