作用1:用於引用變量內容變;等號賦值,變量賦值
作用2:用於行結束符
作用3:變量的間接引用;
作用4:變量的參數替換
作用5:特殊位置符
$0返回腳本名稱,絕對路徑
`basename $0`僅返回腳本名稱,沒有路徑
踩過的坑
1,
$11-->${11}vim中看顏色
2,單引號,雙引號,反引號,無引號作用
雙引號與單引號的異同:
相同:忽略特殊字符;
差異:單引號忽略所有特殊字符,雙引號不忽略$,\,`(反引號);
引號嵌套問題
在雙引號””裏面使用這兩種符號,需要用反斜槓轉義
echo ''"$addr"''="$addr"=addr的值
系統沒那麼聰明 他看到前面2個單引號就以爲是一對了 他哪知道第一個和第4個纔是一對
3,`反引號 相當於$()
4,括號
( ) 把 command group 放在subshell去執行,也叫做 nested sub-shell。
{ } 則是在同一個 shell 內完成,也稱爲 non-namedcommand group。
如果在shell裏面執行“函數”,需要用到{},實際上也就是一個命令羣組;
A,()只是對一串命令重新開一個子shell進行執行
B,{}對一串命令在當前shell執行
C,()和{}都是把一串的命令放在括號裏面,並且命令之間用;號隔開
D,()最後一個命令可以不用分號
E,{}最後一個命令要用分號
F,{}的第一個命令和左括號之間必須要有一個空格
G,()裏的各命令不必和括號有空格
H,()和{}中括號裏面的某個命令的重定向隻影響該命令,但括號外的重定向則影響到括號裏的所有命令
兩個括號(()),是代表算數擴展,就是對其包括的東西進行標準的算數計算——注意,不能算浮點數
參考:http://blog.csdn.net/miyatang/article/details/8077123