天天看點

Shell程式設計入門(第二版)(上)

示例1.

示例2.

Shell程式設計入門(第二版)(上)

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 

Shell程式設計入門(第二版)(上)

3、包含多個字的變量: 

NAME=Mike Ron #運作時出錯,應改為:

NAME=“Mike Ron” 或 $NAME=‘Mike Ron’ 

4、單引号與雙引号的差別

比如:定義DATE=$(date +%F)

time=”time is $DATE”

echo $time

time='time is $DATE'

Shell程式設計入門(第二版)(上)

單引号之間的内容原封不動地指定給了變量。 

5、 set檢視系統中定義的所有變量

unset删除所定義的變量

6、位置變量

Shell解釋執行使用者指令時,将指令行的第一個部分作為指令名,其它部分作為參數。由出現在指令行上的位置确定的參數稱為位置參數。 

例如: 

ls -l file1 file2 file3 

$0 這個程式的檔案名 ls -l 

$n 這個程式的第n個參數值,n=1~9 

7、特殊變量

$* 這個程式的所有參數 

$# 這個程式的參數個數 

$$ 這個程式的PID 

$! 執行上一個背景指令的PID 

$? 執行上一個指令的傳回值

Shell程式設計入門(第二版)(上)

示例-autobak.sh

示例-special.sh

1、read指令[互動方式]

read USERNAME

示例-read.sh

#sh -x 指令:單步調試顯示執行

Shell程式設計入門(第二版)(上)

2、expr指令,對整型變量進行運算

如: expr 3 + 5  #”+”号之間須有空格

expr $var1 - 5 

expr $var1 / $var2 

expr $var3 \* 10  #”*”号需要轉義符”\”

Shell程式設計入門(第二版)(上)

複雜的運算: 

expr `expr 5 + 7`/$var4

Shell程式設計入門(第二版)(上)

将運算結果賦予變量: 

var4=` expr $var1 / $var2 ` 

示例-expr.sh