單引號字符串中的變量是無效的;單引號中不能出現單一的單引號;html
雙引號中能夠有變量; 雙引號裏能夠出先轉義字符;雙引號中的單引號輸出時維持單引號不變shell
示例 1:bash
#! /bin/bash var="aaa
bbb
ccc"
echo ${var}
執行結果:spa
$ ./demo.sh
aaa bbb ccc #變量中的換行被忽略,且只有一個空格
當字符串當成變量展開時,字符串中的多個空格或換行在展開時會只剩一個(方便for循環時候作處理)。code
示例 2:htm
#! /bin/bash var="aaa
bbb
ccc"
echo "${var}"
執行結果:blog
$ ./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 是第五個出現的