Linux Shell程式設計(21)——複雜命令

尹成發表於2014-09-30
更高階的使用者命令


find
-exec COMMAND \;


在每一個find 匹配到的檔案執行 COMMAND 命令. 命令序列以 ; 結束( ";" 是 轉義符 以保證 shell 傳遞到find命令中的字元不會被解釋為其他的特殊字元).


xargs
這是給命令傳遞引數的一個過濾器, 也是組合多個命令的一個工具.它把一個資料流分割為一些足夠小的塊, 以方便過濾器和命令進行處理. 由此這個命令也是後置引用的一個強有力的替換. 在一般使用過多引數的命令替換失敗的時候,用xargs 來替換它一般都能成功. [1] 通常情況下, xargs 從管道或者stdin中讀取資料, 但是它也能夠從檔案的輸出中讀取資料.


xargs的預設命令是 echo. 這意味著通過管道傳遞給xargs的輸入將會包含換行和空白, 不過通過xargs的處理, 換行和空白將被空格取代.




expr
通用求值表示式: 通過給定的操作(引數必須以空格分開)連線引數,並對引數求值.可以使算術操作, 比較操作, 字串操作或者是邏輯操作.


expr 3 + 5
返回 8


expr 5 % 3
返回 2


expr 1 / 0
返回錯誤訊息, expr: division by zero


不允許非法的算術操作.


expr 5 \* 3
返回 15


在算術表示式expr中使用乘法操作時, 乘法符號必須被轉義.


y=`expr $y + 1`
增加變數的值, 與 let y=y+1 和 y=$(($y+1)) 的效果相同. 這是使用算術表示式的一個例子.


z=`expr substr $string $position $length`
在位置$position上提取$length長度的子串.























相關文章