Shell 編程中三種引號的作用
單引號 ‘ ’:其中內容是字符串伞鲫,沒有shell的特殊含義磨澡;
雙引號“ ”:其中特殊字符作shell 含義解釋城须,其它作字符律姨;
反引號 ` `:其中的命令可作為執(zhí)行結果進行賦值。
位置變量
Shell中命令行的參數(shù)可用單獨的位置參數(shù)提取,它們是$1,$2,$3,…$9.
echo $#
for VAR in $*
do echo $VAR
done
shell 中[] [[]] (()) () 區(qū)別
()介紹
①命令組公般。括號中的命令將會新開一個子shell順序執(zhí)行万搔,所以括號中的變量不能夠被腳本余下的部分使用。
②用于初始化數(shù)組官帘。如:array=(a b c d)
(())介紹
①整數(shù)擴展瞬雹。這種擴展計算是整數(shù)型的計算,不支持浮點型遏佣。
②只要括號中的運算符挖炬、表達式符合C語言運算規(guī)則,都可用在$((exp))中,甚至是三目運算符意敛。
③單純用 (( )) 也可重定義變量值馅巷,比如 a=5; ((a++)) 可將 $a 重定義為6
④常用于算術運算比較,雙括號中的變量可以不使用$符號前綴草姻。括號內支持多個表達式用逗號分開钓猬。
for i in $(seq 0 4);do echo $i;done
for i in `seq 0 4`;do echo $i;done
for ((i=0;i<5;i++));do echo $i;done
for i in {0..4};do echo $i;done
[]介紹
①bash 的內部命令,[和test是等同的撩独。
②在一個array 結構的上下文中敞曹,中括號用來引用數(shù)組中每個元素的編號。
③字符范圍综膀。用作正則表達式的一部分澳迫,描述一個匹配的字符范圍。
[[]]介紹
①[[是 bash 程序語言的關鍵字剧劝。并不是一個命令橄登,[[ ]] 結構比[ ]結構更加通用。
②使用[[ ... ]]條件判斷結構讥此,而不是[ ... ]拢锹,能夠防止腳本中的許多邏輯錯誤。比如萄喳,&&卒稳、||、<和> 操作符能夠正常存在于[[ ]]條件判斷結構中他巨,但是如果出現(xiàn)在[ ]結構中的話充坑,會報錯。
③bash把雙中括號中的表達式看作一個單獨的元素闻蛀,并返回一個退出狀態(tài)碼匪傍。
④支持字符串的模式匹配您市,使用=~操作符時甚至支持shell的正則表達式觉痛。
if ($i<5)
if [ $i -lt 5 ]
if [ $a -ne 1 -a $a != 2 ]
if [ $a -ne 1] && [ $a != 2 ]
if [[ $a != 1 && $a != 2 ]]
Test命令
格式:test expre 或 [test]
功能:當表達式的值為真時,命令返回真值0,否則返回假值非0∫鹦荩可完成對文件薪棒、字符串、數(shù)字榕莺、表達式進行判別及求值俐芯。
- 用于對文件的測試
test -[dfrmxs] file
? -d file 判文件存在且為目錄文件
? -f file 判文件存在且為普通文件
? -r file 判文件存在且為可讀文件
? -w file 判文件存在且為可寫文件
? -x file 判文件存在且為可執(zhí)行文件
? -s file 判文件存在且長度為非零
- 對字符串S的測試
test s 字符串S為非空串時返回真值
test -zs 字符串為空時返回真值
test s1=s2 字符串s1與 s2相同時為真值
- 對整數(shù)n 進行測試
test n1 -eq n2 整數(shù)n1和n2相等時為真值
test n1 -ne n2 整數(shù)n1和n2不相等時為真值
test n1 -lt n2 整數(shù)n1小于n2時為真值
test n1 -le n2 整數(shù)n1小于等于n2時為真值
test n1 -gt n2 整數(shù)n1大于n2時為真值
test n1 -ge n2 整數(shù)n1大于等于n2時為真值
讀取標準輸入語句
將標準輸入的值存入到變量中用read命令
echo “enter your name:\c”
read name
echo “your name is $name”
read 命令中的參數(shù)說明:
read [word1][word2][rest]
存放方式為:第一,第二,其余參數(shù)
bash的內部命令
echo eval exec export readonly read Shift wait exit
Shell 程序的調試
- 交互調試
先用命令驗證,再引入shell編程中
- 在編輯過程中執(zhí)行程序
打開多個窗口钉鸯,邊編輯邊執(zhí)行
- 用shell程序跟蹤執(zhí)行
使用shell的 -v,-x選項可對shell程序進行跟蹤
$sh -v test.sh
$sh -x test.sh
[1]https://blog.csdn.net/liweigao01/article/details/78669674
[2]https://blog.csdn.net/zhan570556752/article/details/80399154