1.shell腳本規范以.sh結尾
2.運行
3.賦予權限,查詢shell的執行過程
輸出時間的
輸出日歷
輸出一年的日歷
修改語言
計算機
read –t 3 –p “1111111111” # -t 3是超越時間,即等待3秒鍾,如果不輸入東西,則會自動退出。在shell腳本中,如果用戶不輸入東西,系統不自動退出,則也是一個bug。
打印輸出2行
簡單的shell腳本
Shell內設了用於接收參數的變量,變量之間可以使用空格間隔。例如$0對應的是當前shell腳本程序的名稱,$#對應的是總共有幾個參數,$*對應的是所有位置的參數值,$?對應的是顯示上一次命令的執行返回值,而$1、$2、$3…….則分別對應着第N個位置的參數值
驗證下:
按照測試對象來划分,條件測試句可以分為4種:
文件測試語句
邏輯測試語句
整數值比較語句
字符串比較語句
文件測試即使用條件來判斷文件是否存在或權限是否滿足等情況的運算符
-d 測試文件是否為目錄類型
-e 測試文件是否存在
-f 判斷是否為一般文件
-r 測試當前用戶是否有權限讀取
-w 測試當前用戶是否有權限寫入
-x 測試當前用戶是否有權限執行
驗證:
如果返回值為0,則目錄存在;如果返回值為非零的值,則意味着目錄不存在:
[root@localhost ~]#[ -f /etc/fstab]
[root@localhost ~]#echo $?
0
Shell終端中邏輯”與”的運算符號是&&,命令執行成功后才會執行它后面的命令。
邏輯”或”,它在Linux系統中的運算符號為||,命令執行失敗后才會執行它后面的命令。
可用的整數比較運算符
-eq 是否等於
-ne 是否不等於
-gt 是否大於
-lt 是否小於
-le 是否等於或小於
-ge 是否大於或等於
If 條件測試語句
If條件語句的單分支結構由if、then、fi關鍵詞組成,而且只在條件成立后才執行預設的命令,相當於口語的”如果……..那么………”。單分支的if語句屬於最簡單的一種條件判斷結構。
$?變量,作用是顯示上一次命令的 執行返回值。如果語句執行成功,則返回0,否則1.
If條件語句的多分支結構是工作中最常使用的一種條件判斷結構,盡管相對復雜但是更加靈活。
For條件循環語句
For循環語句允許腳本一次性讀取多個信息,然后逐一對信息進行操作處理,當要處理的數據有范圍時,使用for循環再合適不過了 。
在腳本中使用read命令讀取用戶輸入的密碼值,然后賦值給PASSWD變量,並通過-p參數向用戶顯示一段提示信息,告訴用戶正在輸入的內容即將作為賬戶密碼,在執行該腳本后會自動使用從列表文件forlist.txt中獲取到所有的用戶名稱,然后逐一使用id用戶名命令查看用戶信息,並使用$?判斷這條命令是否執行成功,也就是判斷該用戶是否已經存在。
/dev/null是一個被稱作linux黑洞的文件,把輸出信息重定向到這個文件等同於刪除數據,可以讓用戶的屏幕窗口保持簡潔。
/etc/passwd中存放用戶名的,可以查看,是否創建成功。
判斷主機是否存在,可以使用列表,和for一起使用。
然后前面的雙分支if條件語句與for循環語句相結合 ,讓腳本從主機列表文件ipadd.txt中自動讀取ip地址並將其賦值給HLIST,從而判斷ping命令執行后的返回值來逐個測試主機是否在線。
While條件循環語句
使用多分支的if條件測試語句與while條件循環語句,編寫一個用來猜測數值大小的腳本Guess.sh。該腳本使用$RANDOM變量來調取出一個隨時的數值將這個隨機數對1000進行取余操作,並使用expr命令取得其結果,再用這個數值與用戶通過read命令輸入的數值進行比較判斷。
賦予權限
Case條件測試語句
編寫腳本key.sh,提示用戶輸入一個字符並將其賦值給變量key,然后根據變量key的值向用戶顯示其值是字母、數字還是其他字符。