說明:
$ chmod a+x ./test.sh #使腳本具有執行權限
a=20
b=10
1.算術運算符列表 運算符 說明 舉例
+ 加法 `expr $a + $b` 結果爲 30。
- 減法 `expr $a - $b` 結果爲 10。
* 乘法 `expr $a \* $b` 結果爲 200。 #乘法使用不同
/ 除法 `expr $a / $b` 結果爲 2。
% 取餘 `expr $b % $a` 結果爲 0。
= 賦值 a=$b 將把變量 b 的值賦給 a。
== 相等 相同則返回 true。 [ $a == $b ] 返回 false。
!= 不相等 不相同則返回 true。 [ $a != $b ] 返回 true。
2. -運算符
-eq //等於
-ne //不等於
-gt //大於
-lt //小於
ge //大於等於
le //小於等於
a.最簡單的shell腳本
#!/bin/bash
echo "Hello World !"
b. 從鍵盤上輸入內容
#!/bin/bash
echo "What is your name?"
read PERSON
echo "Hello, $PERSON"
運行腳本,輸出:(比如輸入一個1)
What is your name?
Hello,1
c. while循環
#!/bin/bash
COUNTER=0
while [ $COUNTER -lt 5 ]
do
COUNTER='expr $COUNTER+1' #shell腳本不是直接+1的
echo $COUNTER
done
運行腳本,輸出:
1
2
3
4
5
d. until[條件] 條件爲假時才執行循環
#!/bin/bash
a=0
until [ ! $a -lt 5 ]
do
echo $a
a=`expr $a + 1`
done
運行結果:
0
1
2
3
4
e. for循環
#!/bin/bash
for loop in 1 2 3 4 5
do
echo "The value is: $loop"
done
運行結果:
The value is: 1
The value is: 2
The value is: 3
The value is: 4
The value is: 5
f. 函數
#!/bin/bash
Hello () {
echo "Url is http://see.xidian.edu.cn/cpp/shell/"
}
# Invoke your function
Hello
運行結果:
$./test.sh
Hello World
$
g. Shell文件包含執行其它腳本
1. vi subscript.sh
#!/bin/bash
url="http://see.xidian.edu.cn/cpp/view/2738.html"
echo $url
2. vi main.sh
#!/bin/bash
./subscript.sh
運行結果:
http://see.xidian.edu.cn/cpp/view/2738.html
h. 實踐中總結
//if嵌套
if [ "${product}_x" = "WIFI_DVR_x" ]
then
echo "------------ run /dm05_sample-----------------"
/md05_judge
RET_VALUE=$? //如果有3個以上的返回值先把返回值保存
if [ $RET_VALUE -eq 0 ]
then
echo "run main_wifi"
/home/dvr/bin/main_wifi ${rtc} &
elif [ $RET_VALUE -eq 1 ]; then
echo "run md05_sample"
/md05_sample
elif [ $RET_VALUE -eq 2 ]; then
echo "run test pcb "
fi
fi
特殊變量列表
#!/bin/bash
echo "File Name: $0"
echo "First Parameter : $1"
echo "First Parameter : $2"
echo "Quoted Values: $@"
echo "Quoted Values: $*"
echo "Total Number of Parameters : $#"
運行結果:
$./test.sh Zara Ali
File Name : ./test.sh
First Parameter : Zara
Second Parameter : Ali
Quoted Values: Zara Ali
Quoted Values: Zara Ali
Total Number of Parameters : 2
特殊變量列表 變量 含義
$0 當前腳本的文件名
$n 傳遞給腳本或函數的參數。n 是一個數字,表示第幾個參數。例如,第一個參數是$1,第二個參數是$2。
$# 傳遞給腳本或函數的參數個數。
$* 傳遞給腳本或函數的所有參數。
$@ 傳遞給腳本或函數的所有參數。被雙引號(" ")包含時,與 $* 稍有不同,下面將會講到。
$? 上個命令的退出狀態,或函數的返回值。
$$ 當前Shell進程ID。對於 Shell 腳本,就是這些腳本所在的進程ID。
shell腳本的使用
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.