字元串是shell編程中最常用最有用的數據類型(除了數字和字元串,也沒啥其它類型好用了),字元串可以用單引號,也可以用雙引號,也可以不用引號。 但是單引號和雙引號是有區別的: 單引號: 單引號里的任何字元都會原樣輸出,單引號字元串中的變數是無效的; 單引號字串中不能出現單獨一個的單引號(對單引號使用 ...
字元串是shell編程中最常用最有用的數據類型(除了數字和字元串,也沒啥其它類型好用了),字元串可以用單引號,也可以用雙引號,也可以不用引號。
但是單引號和雙引號是有區別的:
單引號:
- 單引號里的任何字元都會原樣輸出,單引號字元串中的變數是無效的;
- 單引號字串中不能出現單獨一個的單引號(對單引號使用轉義符後也不行),但可成對出現,作為字元串拼接使用。
雙引號:
- 雙引號里可以有變數
- 雙引號里可以出現轉義字元
獲取字元串長度:例:
#!/bin/bash name="dongxiucai" echo ${#name}
運行結果:
提取子字元串:例:(以下代碼為從第3個字元開始截取3個字元)
#!/bin/bash name="dongxiucai" echo ${name:2:3}
運行結果:
原字元串為 dongxiucai 從第3個字元開始(n)截取3個字元(到x),所以結果為ngx
查找子字元串:例:(查找字元)
#!/bin/bash name="dongxiucai" echo `expr index "$name" g`
查找 g 字元在子符串中的位置:運行結果:
在查找匹配字元串時,可以也可以這樣寫:
#!/bin/bash
name="dongxiucai"
echo `expr index "$name" xn`
後面有兩個字元,哪個字元先出現,就輸出那個字元的位置:運行結果:
結果為 3 ,因為 n 先出現 ,則位置顯示 n 的位置 ,結果為 3
註意:在 expr 中的符號為 ` 反引號,而不是單引號 ' ,不要看錯輸錯了