單引號
單引號字符串中的變量是無效的;單引號中不能出現單一的單引號;
雙引號
雙引號中可以有變量; 雙引號里可以出先轉義字符;雙引號中的單引號輸出時維持單引號不變
示例 1:
#! /bin/bash
var="aaa
bbb
ccc"
echo ${var}
執行結果:
$ ./demo.sh
aaa bbb ccc #變量中的換行被忽略,且只有一個空格
當字符串當成變量展開時,字符串中的多個空格或換行在展開時會只剩一個(方便for循環時候做處理)。
示例 2:
#! /bin/bash
var="aaa
bbb
ccc"
echo "${var}"
執行結果:
$ ./demo.sh
aaa
bbbb ccc
當字符串當成字符串被展開時,字符串保持原樣不變。
獲取字符串長度
string="abcdefg"
echo ${#string}
提取字符串
string="abcdefg"
#0123456
echo ${string:1:4} #輸出 bcde
echo ${string:1} #輸出 bcdefg
查找字符串
string="abcdef" echo `expr index "$string" ef` #輸出5,因為 e 是第五個出現的