$, $
從$var 開頭刪除最近或最遠匹配$pattern 的子串.
來自 example a-7 例子的一部分.
1 # 來自"days-between.sh"例子的乙個函式.
2 # 去掉傳遞進來的引數開頭的 0.
34 strip_leading_zero () # 去掉開頭的 0
5 # "1"指的是"$1" -- 傳進來的引數.
7} # "0"就是我們想從"$1"中刪除的子串.
下邊是 manfred schwarb's 對上邊函式的乙個改版.
1 strip_leading_zero2 () # 去掉開頭的 0,因為如果不去掉的話
# bash 將會把這個值作為 8 進製解釋.
2 # 使用區域性變數,匹配最長的連續的 0.
# 開啟擴充套件 globbing.
5 shopt -u extglob
6 _strip_leading_zero2=$
7 # 如果輸入為 0,那麼返回 0 來代替"".
8}另乙個例子
1 echo `basename $pwd` # 當前工作目錄的 basename.
2 echo "$" # 當前工作目錄的 basename.
3 echo
4 echo `basename $0` # 指令碼名字.
5 echo $0 # 指令碼名字.
6 echo "$" # 指令碼名字.
7 echo
8 filename=test.data
9 echo "$" # data
$, $
從$var 結尾刪除最近或最遠匹配$pattern 的子串.
bash version2 新增了額外的選項.
example 9-17 引數替換中的模式匹配
################################start
script#######################################
1 #!/bin/bash
2 # patt-matching.sh
34 # 使用# ## % %%來進行引數替換操作的模式匹配.
56 var1=abcd12345abc6789
7 pattern1=a*c # * (萬用字元) 匹配 a - c 之間的任何字元.
89 echo
10 echo "var1 = $var1" # abcd12345abc6789
11 echo "var1 = $" # abcd12345abc6789
12 # (alternate form)
13 echo "number of characters in $ = $"
14 echo
1516 echo "pattern1 = $pattern1" # a*c (everything between 'a' and 'c')
17 echo "--------------"
18 echo '$ =' "$" # d12345abc6789
19 # 最短的可能匹配, 去掉 abcd12345abc6789 的前 3 個字元
20 # |-| ^^^
21 echo '$ =' "$" # 6789
22 # 最遠的匹配,去掉 abcd12345abc6789 的前 12 個字元.
23 # |----------| ^^^^
2425 echo; echo; echo
2627 pattern2=b*9 # 'b' 到'9'之間的任何字元
28 echo "var1 = $var1" # 還是 abcd12345abc6789
29 echo
30 echo "pattern2 = $pattern2"
31 echo "--------------"
32 echo '$ =' "$" # abcd12345a
# 最近的匹配, 去掉 abcd12345abc6789 的最後 6 個字元
3334 # |----| ^^^^
35 echo '$ =' "$" # a
36 # 最遠匹配, 去掉 abcd12345abc6789 的最後 12 個字元
37 # |-------------| ^^^^^^
3839 # 記住, # 和## 從字串的左邊開始,並且去掉左邊的字串,
40 # % 和 %% 從字串的右邊開始,並且去掉右邊的子串.
4142 echo
4344 exit 0
Shell之傳遞引數
注 此部落格使用的是bash shell 在執行 shell 指令碼時,可以向指令碼傳遞引數。bin bash echo this is a test code echo input parameter echo file name is 0表示本檔案名字 echo my name is 1 4表示...
shell學習筆記之if引數
b 當file存在並且是塊檔案時返回真 c 當file存在並且是字元檔案時返回真 d 當pathname存在並且是乙個目錄時返回真 e 當pathname指定的檔案或目錄存在時返回真 f 當file存在並且是正規檔案時返回真 g 當由pathname指定的檔案或目錄存在並且設定了sgid位時返回為真...
Shell學習之傳遞引數
shell 傳遞引數 我們可以在執行 shell 指令碼時,向指令碼傳遞引數,指令碼內獲取引數的格式為 n。n 代表乙個數字,1 為執行指令碼的第乙個引數,2 為執行指令碼的第二個引數,以此類推 例項以下例項我們向指令碼傳遞三個引數,並分別輸出,其中 0 為執行的檔名 bin bash author...