一。知識點:變量,參數傳遞shell
練習1:使用shell腳本,輸出當前所在的目錄bash
練習2:計算/etc目錄下有多少個文件,用shell腳本實現測試
ls -l--->數一下,spa
ls -l|wc -l3d
(1)實現統計任何指定目錄下的文件個數,加入輸入界面blog
(2)直接經過執行命令中傳入參數字符串
腳本:產品
執行後:for循環
二。重定向class
正確的:
錯誤的:
命令
腳本
三。分支,循環
1.判斷/root目錄是否Wie空
涉及知識點:字符串間的判斷: ==字符串是否相等,!=是否不相等
2.練習:經過用戶輸入任意目錄判斷是否爲空
3.判斷用戶輸入的用戶名和密碼是否爲admin 123456,若是是則提示登陸成功,不然提示失敗
4.輸入數字,判斷是否大於0,若是大於0則將該數字-1並輸出,不然+1輸出
變量運算的多種寫法
-eq/-ne/-gt/-ge/-lt/-le
((i++)) ((i+=1)) i=$[$i+1] let i=i+1 i=$(($i+1))
s=$(($s+$i)) s=$[$s+$i] ((s=$s+$i))
5.判斷用戶輸入的目錄是否存在,若是存在則統計目錄下的文件個數,不然提示用戶該目錄不存在
test 參數 變量名---->測試文件的狀態
-e 表示文件是否存在
-f 表示文件是否存在且爲文件
-d 表示文件名是否存在且爲目錄
-r 可讀
-w 可寫
-x 可執行
6.if...elif...else練習
判斷學生的成績,大於90-100提示優秀,80-90之間提示良好,70-80之間則提示通常,60-70之間提示及格。其餘則提示不及格
7.判斷用戶輸入的內容是否爲空,爲空則提示,不爲空則判斷是否爲目錄,不爲目錄則判斷是否爲文件,不然提示錯誤信息
-r -r filename 文件是否存在且可讀
-w -w filename 文件是否存在且可寫
-x -x filename文件是否存在且可執行
-f -f filename 文件是否存在且是普通文件
-d -d filename 文件是否存在且是一個目錄
-e -e filename 文件是否存在
-n -n str1 字符串長度是否不等於0
-z -z str2 字符串長度是否等於0
8.case $變量名 in (至關於if else)
"值")
語句;;
"值")
語句;;
...
(1)輸入一個字母,判斷該用戶選擇哪款產品,A:筆記本 B:電飯煲 C:小檯燈
(2)請輸入對客服的滿意度,【0-3】不滿意,【4-6】滿意,【7-9】很是滿意
區間用【】
9。循環語句 :for
(1)輸出1-10之間的數
10.while循環
總結:
1.shell介紹
一般所說的shell就是shell腳本,它是一門腳本語言,弱類型
2.shell規範
第一行內容爲#!/bin/bash
#註釋
是以.sh結尾的文件
3.shell語法
變量
定義
釋放變量
變量值若是有空格,須要加引號
"" :輸出變量對應的值
'':原樣輸出
``:定義命令變量時須要使用``
命名規範
輸出變量:echo $變量名
輸入:read 變量名
read -p "提示信息" 變量名
向文件傳遞參數:
$1--->傳遞第一個參數
$2---->....
$3--->....
$n---->......
$0:顯示的是文件名稱
$@:顯示全部的參數
$#:顯示的參數的個數
重定向:將內容保存到文件中 正確命令: 用數字1表示, >覆蓋,>>追加 錯誤命令:用數字2表示,>覆蓋,>>追加 程序的結構: 分支結構: if...else分支: 邏輯運算符:-a -o ! 比較運算符:-ge -gt -lt -le -eq -ne 測試文件的狀態:test 參數 文件名 字符串判斷:== ,!= 文件判斷:-d -e -f -w -r -x ..... if...elif...else分支 case分支: 注意: 1.case這一行的最後爲in 2.;;表示語句的結束 3. *:表示默認 4.esac:表示case語句結束 5.值:能夠是字符串、數字、還但是區間範圍【0-9】之間 循環結構 for循環 格式:for 變量名 in 列表 do 語句 done 命令:seq start size max