天天看點

shell 之 腳本變量和字元串截取

腳本變量:

  • $$   Shell本身的PID(ProcessID) 
  • $!    Shell最後運作的背景Process的PID 
  • $?    最後運作的指令的結束代碼(傳回值) 
  • $-    使用Set指令設定的Flag一覽 
  • $*    所有參數清單。如"$*"用「"」括起來的情況、以"$1 $2 … $n"的形式輸出所有參數。 
  • [email protected]  所有參數清單。如"[email protected]"用「"」括起來的情況、以"$1" "$2" … "$n" 的形式輸出所有參數。 
  • $#   添加到Shell的參數個數 
  • $0   Shell本身的檔案名 
  • $1~$n     添加到Shell的各參數值。$1是第1參數、$2是第2參數…。

字元串截取:

假設變量為var=http://www.hao.com/123.htm

1. # 号截取,删除左邊字元,保留右邊字元。

echo ${var#*//}

其中 var 是變量名,# 号是運算符,*// 表示從左邊開始删除第一個 // 号及左邊的所有字元

即删除 http://

結果是 :www.hao.com/123.htm

2. ## 号截取,删除左邊字元,保留右邊字元。

echo ${var##*/}

##*/ 表示從左邊開始删除最後(最右邊)一個 / 号及左邊的所有字元

即删除 http://www.hao.com/

結果是 123.htm

3. %号截取,删除右邊字元,保留左邊字元

echo ${var%/*}

%/* 表示從右邊開始,删除第一個 / 号及右邊的字元

結果是:http://www.hao.com

4. %% 号截取,删除右邊字元,保留左邊字元

echo ${var%%/*}

%%/* 表示從右邊開始,删除最後(最左邊)一個 / 号及右邊的字元

結果是:http:

5. 從左邊第幾個字元開始,及字元的個數

echo ${var:0:5}

其中的 0 表示左邊第一個字元開始,5 表示字元的總個數。

結果是:http:

6. 從左邊第幾個字元開始,一直到結束。

echo ${var:7}

其中的 7 表示左邊第8個字元開始,一直到結束。

結果是 :www.hao.com/123.htm

7. 從右邊第幾個字元開始,及字元的個數

echo ${var:0-7:3}

其中的 0-7 表示右邊算起第七個字元開始,3 表示字元的個數。

結果是:123

8. 從右邊第幾個字元開始,一直到結束。

echo ${var:0-7}

表示從右邊第七個字元開始,一直到結束。

結果是:123.htm

(左邊的第一個字元是用 0 表示,右邊的第一個字元用 0-1 表示)