一。知識點:變量,參數傳遞
練習1:使用shell腳本,輸出當前所在的目錄
練習2:計算/etc目錄下有多少個文件,用shell腳本實現
ls -l--->數一下,
ls -l|wc -l
(1)實現統計任何指定目錄下的文件個數,加入輸入界面
(2)直接通過執行命令中傳入參數
腳本:
執行后:
二。重定向
正確的:
錯誤的:
命令
腳本
三。分支,循環
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