Shell腳本
Shell腳本與Windows/Dos下的批處理相似,也就是用各類命令預先放入到一個文件中,方便一次性執行的一個程序文件,主要是方便管理員進行設置或者管理用的。但是它比Windows下的批處理更強大,比用其他編程程序編輯的程序效率更高
Shell就是一個命令行解釋器,它的作用就是遵循一定的語法將輸入的命令加以解釋並傳給系統。它爲用戶提供了一個向Linux發送請求以便運行程序的接口系統級程序,用戶可以用Shell來啓動、掛起、停止甚至是編寫一些程序。 Shell本身是一個用C語言編寫的程序,它是用戶使用Linux的橋樑。Shell既是一種命令語言,又是一種程序設計語言(就是你所說的shell腳本)。作爲命令語言,它互動式地解釋和執行用戶輸入的命令;作爲程序設計語言,它定義了各種變量和參數,並提供了許多在高階語言中才具有的控制結構,包括循環和分支。它雖然不是 Linux系統內核的一部分,但它調用了系統內核的大部分功能來執行程序、創建文檔並以並行的方式協調各個程序的運行。
1、 腳本命名
*.sh
2、命名變量
1)自定義變量
Name=zhangsan
2)#env
大寫字母
3)$
#echo $name
#echo $PATH
4)作用域
默認自定義變量----局部
通過調用多個shell進程
打開shell-----父
再次打開shell----子
#env
SHLVL==shell level
#export
5){}
#name=zhangsan
#echo{$name}isastudent
6)> >>輸出
< << 輸入
<<:指定終止的符號
#cat <&0 表示接收來自鍵盤的輸入
#cat <file 表示接收來自文件的輸入
at <file –m
系統在接收輸入輸出內容存在方向
輸入輸出描述符:
輸入:鍵盤 0
輸出:屏幕 1
錯誤輸出:分離 2
臨時符號---起過渡作用3-9
/dev/null-----虛擬出來的一個設備(黑洞)
String = <<<HELLO
7)read---從鍵盤讀取變量的值
注意當變量的數量和值的數量不一致的情況
#read 變量名
8)常見參數
$?-----表示顯示最近一條命令的執行狀態
狀態分類:
退出狀態0:表示成功
退出狀態1:表示失敗
條件:
test 操作數1 操作符 操作符2
test 1>2
操作符:
數值類型數據比較
字符串類型數據比較
文件類型數據比較
[]:代替test
注意括號和命令之間要加空格
[ -x file ]
. 腳本文件
Sh 腳本文件
./腳本文件
雙引號:解釋變量
單引號:當做字符串顯示
$#:參數的總的數量
$*:顯示所用參數
$1:各個參數
$9:
Shift n :將參數向前移位n位
9)流程控制結構
If 條件
Then
執行命令
Elif 條件
Then
。。。
Else
。。。
Fi
File5.sh
執行命令的狀態也可以當做條件
$?----
內核通過接受命令退出時返回的數字,判斷是否成功
Exit 100
測試接受參數的
如果接受的參數小於三個,提醒。。。
如果接受的參數大於三個,顯示參數
接受參數可以當條件
環境變量也可以當條件
如果是root身份登錄,提示。。。
如果不是root,提示。。。
Case語句:
語法
Case 值 in
模式1)
命令1
。。。
。。。
;;
模式2)
命令1
。。。
。。。
;;
。。。
。。。
Esac
提醒:模式裏可以使用通配符
Shell腳本是給內核看
For循環
語法:
For 變量名 in 列表
Do
命令
Done
Until
Until 條件
Do
命令
Done
While
While 條件
Do
命令
Done
Break
Continue
#!/bin/bash
While :
Do
Echo –n “please input number 1 to 5”
Read num
Case $num in
1|2|3|4|5)
Echo “ok”
;;
*)
Echo “error”
Break
;;
Esac
Done
Break:終止當前命令
Continue:終止當前次循環
計算:
Expr 表達式
$((…..表達式…….))
函數:定義 使用
應用