linux shell 編程
shell 編程
1.簡述
利用vi等文本編輯器編寫Shell腳本的格式是固定的,如下:
#!/bin/bash #comments Your commands go here
首行中的符號#!告訴係統其後路徑所指定的程序bash即是解釋此腳本文件的Shell程序。
除第一行外,以#開頭的行就是注釋行,直到此行的結束。如果一行未完成,可以在行尾加上",這個符號表明下一行與此行會合並為同一行。
2.變量
有環境變量、內部變量、用戶變量。
Shell Script是一種弱類型語言,使用變量的時候無需首先聲明其類型。
variable_name = variable_value
取值的時候要在變量名前加$,$variable_name可以在引號中使用,這一點和其他高級語言是明顯不同的。
特殊變量
$$
Shell本身的PID(ProcessID)
$!
Shell最後運行的後台Process的PID
$?
最後運行的命令的結束代碼(返回值)
$#
添加到Shell的參數個數
$0
Shell本身的文件名
$1~$n
添加到Shell的各參數值。$1是第1參數、$2是第2參數…。
demo:
3.數字比較
-eq equal
-ge greater or equal
-le less or equal
-ne not equal
-gt greater than
-lt less than
4.字符串比較
== 是否相等
!= 是否不等
-n 長度是否大於0
-z 長度是否等於0
5.文件操作符
-d 是否為目錄
-f 是否為文件
-r 是否可讀
-w 是否可寫
-x 是否可執行
6.邏輯運算符
! 等價c語言 !
-a 等價c語言 &&
-o 等價c語言 ||
7.for語句
for current_variable
do
statements
done
8.if語句
if [ expression ] ; then
statements
elif [ expression ] ; then
statements
else
statements
fi
說明:elif或else語句不是必需的。
9.case語句
case str in
str1 | str2)
statements;;
str3|str4)
statements;;
*)
statements;;
esac
說明:*對應C語言的 default; ";;"對應C語言的break。
10. exit語句
退出shell程序並返回一個值,方便被另一個shell調用並給出反饋。
11.函數
func(){
statements
}
12. shell腳本中執行其他shell腳本
12.1 直接調用
12.2 exec
12.3 source
如 source /root/soft/apache-tomcat-8.0.21/bin/shutdown.sh 或 . /root/soft/apache-tomcat-8.0.21/bin/shutdown.sh
source命令也稱為“點命令”,也就是一個點符號(.),是bash的內部命令。
讀取目標腳本裏麵的語句依次在當前shell裏麵執行,沒有建立新的子shell。那麼腳本裏麵所有新建、改變變量的語句都會保存在當前shell裏麵。
最後更新:2017-04-03 08:26:12