將Linux命令的結果作為下乙個命令的引數

2021-06-19 21:41:40 字數 1200 閱讀 1896

kiss:

keep it short and ******!

1. 符號:` `

名稱:反引號,上分隔符

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

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

舉例:

1$echo`date`

2thu mar 7 21:31:11 cst 2013

2. $() 

效果同` `

3. 命令:xargs

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

1$ date | xargs echo

2thu mar 7 21:47:12 cst 2013

管道與xargs的區別:

4. find命令的-exec引數

xargs:通過緩衝方式並以前面命令列的輸出作為引數,隨後的命令呼叫該引數

若忽略 xargs 的 options 來看的話,

cm1 | xargs cm2

可以單純看成: cm2 `cm1`

因此, find .... | xargs rm 也可作 rm `find ...` 來處理.

然而, 若 find 的結果太多, 可能會超過rm 可能接受的最大argument數量而失敗.

xargs優點:由於是批處理的,所以執行效率比較高(通過緩衝方式)

xargs缺點:有可能由於引數數量過多(成千上萬),導致後面的命令執行失敗

若換成 find .... -exec   rm {} \; 的話, 

因為rm 是" 逐個 " item 去處理的, 則無此憂慮

參考:

將Linux命令的結果作為下乙個命令的引數 轉

符號 名稱 反引號,上分隔符 位置 反引號 這個字元一般在鍵盤的左上角,數字1的左邊,與 在同一鍵上,不要將其同單引號 混淆 作用 反引號括起來的字串被shell解釋為命令列,在執行時,shell首先執行該命令列,並以它的標準輸出結果取代整個反引號 包括兩個反引號 部分 舉例 echo date 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 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 ...