示例1.
示例2.
1、#!指定執行腳本的Shell
2、#注釋行,描述該腳本的作用,負責人等資訊
3、指令和控制結構
第一步:建立一個包含指令和控制結構的檔案。
第二步:修改這個檔案的權限使它可以執行: chmod u+x
第三步:執行 ./example 或 sh example 或 . sysinfo.sh
變量:是shell傳遞資料的一種方法,用來代表每個取值的符号名。
Shell有兩類變量:臨時變量和永久變量。
臨時變量是shell程式内部定義的,其使用範圍僅限于定義它的程式,對其它程式不可見。包括:使用者自定義變量、位置變量。
永久變量是環境變量,其值不随shell腳本的執行結束而消失。
1、使用者自定義變量
使用者定義的變量由字母或下劃線開頭,由字母、數字或下劃順序列組成,區分大小寫。變量名長度沒有限制。在使用變量值時,要在變量名前加上字首“$”。
2、設定和使用變量
設定變量:習慣上用大寫字母來命名變量。變量名隻能以字母表中的字元開頭,不能用數字。
變量指派:“=”兩邊沒有空格。
定義時指派,如NUM=1
将一個指令的執行結果賦給變量,如:TIME=`date`;TIME=$(date +%F)
将一個變量的值賦給另一個變量,如:B=120 ; A =$B
使用echo指令檢視變量值。例如:echo $A
3、包含多個字的變量:
NAME=Mike Ron #運作時出錯,應改為:
NAME=“Mike Ron” 或 $NAME=‘Mike Ron’
4、單引号與雙引号的差別
比如:定義DATE=$(date +%F)
time=”time is $DATE”
echo $time
time='time is $DATE'
單引号之間的内容原封不動地指定給了變量。
5、 set檢視系統中定義的所有變量
unset删除所定義的變量
6、位置變量
Shell解釋執行使用者指令時,将指令行的第一個部分作為指令名,其它部分作為參數。由出現在指令行上的位置确定的參數稱為位置參數。
例如:
ls -l file1 file2 file3
$0 這個程式的檔案名 ls -l
$n 這個程式的第n個參數值,n=1~9
7、特殊變量
$* 這個程式的所有參數
$# 這個程式的參數個數
$$ 這個程式的PID
$! 執行上一個背景指令的PID
$? 執行上一個指令的傳回值
示例-autobak.sh
示例-special.sh
1、read指令[互動方式]
read USERNAME
示例-read.sh
#sh -x 指令:單步調試顯示執行
2、expr指令,對整型變量進行運算
如: expr 3 + 5 #”+”号之間須有空格
expr $var1 - 5
expr $var1 / $var2
expr $var3 \* 10 #”*”号需要轉義符”\”
複雜的運算:
expr `expr 5 + 7`/$var4
将運算結果賦予變量:
var4=` expr $var1 / $var2 `
示例-expr.sh