以./xx.sh start 112 113爲例
$#------執行腳本時傳遞的參數個數($#=3)
$@------傳遞的參數($@=start 112 113)
$0-------腳本文件自己($0=./xx.sh)
$1-------傳遞給腳本的第一個參數($1=start)
$2-------傳遞給腳本的第一個參數($2=112)
$3-------傳遞給腳本的第一個參數($3=113)數組
$$-------當前進程的pid進程
$()與``-------命令替換(command subsititution)字符串
$(())-------數學運算(arithmetical operation)數學
${}-------用作變量的替換(variable subsititution) 另外還有一些特異的功能,見附件; it
history用法:參見man 3 historyio
!!-------上一次命令變量
!^-------上一次命令的第一個參數file
!$-------上一次命令的最後一個參數command
!*-------上一次命令的所有參數方法
!:0-------命令自己
!:3-------指定第3個參數
!:2-5-------指定2到5個參數
!:-3-------指定0到3個參數
!:2*-------指定2到最後一個參數
!:2- -------指定2到最後二個參數
!:s/xx/yy -------將上次命令中的xx替換爲yy
附${}的特異功能
${}-------用作變量的替換(variable subsititution)
${}對數組的操做:
A=(abc def ghij) $A被定義數組
${A[@]}與${A[*]}獲得所有數組
例:for i in ${A[@]}; do echo $i; done;
${A[2]}獲得所有數組的第2個組數
${#A[@]}與${#A[*]}獲得數組的數量
${#A[2]}與${#A[2]}獲得數組的第二個數組的長度即 def的長度
A[3]=okaywangbin 對數組的第3個組數進行賦值
${}爲字符串的操做
假設咱們定義了一個變量爲:
file=/dir1/dir2/dir3/my.file.txt
咱們能夠用 ${ } 分別替換得到不一樣的值:
記憶的方法爲:
單一符號是最小匹配﹔兩個符號是最大匹配。[/list]
咱們也能夠對變量值裏的字符串做替換:
利用 ${ } 還可針對不一樣的變量狀態賦值(沒設定、空值、非空值):