標籤:
一.指令碼結構
linux下shell的指令碼,是將一系列命令序列寫在一個文字檔,而這個文字檔時可執行檔。相對命令列來說,開發效率提高。因此他的構架有2部分構成#!和命令序列。其中#!指明此指令碼是用哪個解析器來解析。 例如:
二.基礎知識
2.1 變數
shell本允許使用者佈建和使用自己的變數,變數可以是數字或者字串,使用者無需指定其類型,也無需在使用前定義。
例如:
1 #!/bin/bash2 3 #2.24 a="hello word"5 b=56 echo "A is" $a7 echo "B is" $b
2.2 參數
同C程式一樣,shell本中也可以使用命令列參數
$#:傳入指令碼的命令列參數個數
$*:所有命令列參數值,在各個參數值之間留有空格
$0:命令本身(shell檔案名稱)
$0:命令本身(shell檔案名稱)
$1:第一個命令列參數
$2:第二個命令列參數
例如:
#!/bin/bash#2.3echo "number of var:" $#echo "value of vars" $*echo "name of script" $0echo "value of var1" $1echo "value of var2" $2
終端: ./bash.sh a 3, 結果可以此驗證
2.3 數學計算
shell本提供了一個專門的命令expr來計算數學運算式,例如expr 5 +1,但是當要把計算的結果賦值給其他變數的時候,還必須使用反號。var=`expr 20 / 10`。 例如:
#!/bin/bash#2.4var1=10var2=20var3=`expr $var2 / $var1`var4=`expr $var2 + $var1`echo $var3echo $var4
2.5 流程式控制制語句
2.5.1
shell指令碼中最基本的流程式控制制語句就是if-then,使用格式:
if [ condition ] (特別提醒:方括弧左右兩邊必須有空格)
then
commands
else
commands
fi
例如:
#!/bin/bash#2.5.1var=10if [ $var -gt 5 ]then echo "the value is greater than 5"fi
2.5.2
shell本提供了for命令,用於建立類似於c語言編程中for
語句一樣的迴圈。使用格式:
for var in list
do
commands
done
例如:
#!/bin/bash#2.5.2list="Sun Mon Tue Wed Thur Fri Sat"for day in $listdo echo $daydone
2.5.3
shell本提供了while命令,用於建立類似於c語言編程中
while語句一樣的迴圈。使用格式:
while condition
do
commands
done
例如:
#!/bin/bashwhile [ $var -gt 0 ]do echo $var var=`expr $var - 1`done
shell編程技術之-基礎知識