1. 程式人生 > >Linux之expr命令詳解

Linux之expr命令詳解

expr命令:
    expr命令是一個手工命令列計數器,用於在UNIX/LINUX下求表示式變數的值,一般用於整數值,也可用於字串。
  –格式為:
    expr Expression(命令讀入Expression 引數,計算它的值,然後將結果寫入到標準輸出)
  –引數應用規則:
    用空格隔開每個項;
    用 \ (反斜槓) 放在 shell 特定的字元前面;
    對包含空格和其他特殊字元的字串要用引號括起來
  


 

–expr用法例項講解:

    expr命令一般用於整數值,但也可用於字串
  一般格式為:
    #expr argument operator argument
    expr也是一個手工命令列計數器:
    >#expr 10 + 10
    >20

  

    注意:運算子號兩邊都有空格
    使用乘法計算時,要使用斜線將*進行轉義,否則shell直譯器會解析*特殊符號的
    >expr 20 \* 2
    >40

  



增量計數
  expr在迴圈中用於增量計算。首先,迴圈初始化為0,然後迴圈值加1,反引號的用法意
  即替代命令。最基本的一種是從(expr)命令接受輸出並將之放入迴圈變數。
  $a=0
  b=`expr $a + 1`

  

 

數值測試
  可以用expr測試一個數。如果試圖計算非整數,將返回錯誤。
  非整數:

  # rr=1.1
  # expr $rr + 1
  expr: non-integer argument

  整數:
  # bb=1
  # expr $bb + 1
  2

  
模式匹配
  expr也有模式匹配功能。可以使用expr通過指定冒號選項計算字串中字元數。.*意即任何字元重複0次或多次
  # value=linux.do
  # expr $value : '.*'
  8

  

 

陣列
  $varname[0]=value1
  $varname[1]=value2
  ....
  來定義用
  $echo ${varname[0]}
  方式來引用  
  ### 字串長度   
  shell>> expr length "this is a test"
  14   
  ### 數字商數   
  shell>> expr 14 % 9
  5   

  

  ### 從位置處抓取字串
  shell>> expr substr $value 2 3 
  inu

  

  ### 數字串 only the first character
  shell>> expr index $value u
  4

  

  ### 字串真實重現
  shell>> expr $value 
  linux.do

  

 

注:本文中所有的$value都是在環境中預先定義的變數“value=linux.do”


為了便於交流,大家可以進群交流,分享經驗,共同進步!