1.5 shell指令碼程式設計-分支結構if分支語句,多分支
//使用者的資訊會寫到/etc/passwd
//同時會生成以此使用者名稱命名的家且錄 在/home建立
從鍵盤讀取使用者輸入的密碼資訊,驗證輸入的密碼是否為123456,
如果輸入正確,顯示密碼正確,如果錯誤,顯示密碼錯誤。
#!/bin/bash
read -p "請輸入密碼:" passwd
if test $passwd = "123456" //字串建議用雙引號引起來
if [ $passwd = "123456" ] //用中括號寫測試語句
then
echo "passwd is ok"
fi
解決輸入的密碼資訊和已有的資訊做匹配的資訊:
使用test測試:
檔案屬性測試
字串測試
算數測試
命令格式:
test 測試語句
[ 測試語句 ] //括號兩邊要有空格
檔案屬性測試
-e 測試檔案存在為真
-f 測試檔案存在為真且是乙個常規檔案
-d 測試檔案仔在為真且是乙個目錄
-c 測試檔案存在且特殊字元檔案為真
-b 測試檔案存在且特殊塊為真
-g 測試檔案存在為真且是乙個常規檔案
-u 測試檔案存在且設定了ugid位為真
-r 測試檔案存在且可讀為真
-w 測試檔案存在且可寫為真
-x 測試檔案存在且可執行為真
-s 測試檔案存在且不為空為真
邏輯與或邏輯或:
&& 邏輯與
|| 邏輯或
true 為真
false 為假
true && false --> false
當第乙個新增為真時,返回第二個條件 false
true && true --> true
false && false --> false
當乙個條件為假時,返回第乙個條件
//兩者都為真結果為真,
//有乙個為假,結果為假
true || false --> true
true || true --> true
false || false --> false
//兩者都為假結果為假,
//有乙個為真,結果為假
&& 遇假停並返回, 沒有返回最後乙個 || 遇真停,並返回,沒有最後乙個
a. txt is 0k
#test -e /root/b. txt && echo 「b. txt is 0k」
#test -e /root/b. txt && echo 「b. txt is 0k」||echo 「b. txt is not 0k」
b. txt is not 0k
字串測試:
-z 為空為真
-n 不為空為真
= 相同為真
!= 不相同為真
< 字典排名在前為真
字典排名在後為真hi > nihao 真
if test -z $username
then
echo"請輸入密碼:"
else
執行密碼不為空的語句
fiif test -n $username
then
執行密碼不為空的語句
else
echo"請輸入密碼:"
fi算術測試的操作:
-eq 等於
-ne 不等於
-gt 大於
-ge 大於等於
-lt 小於
-le 小於等於
單分支if 測試的語句或命令
then
執行語句
fi雙分支:
if 測試的語句或命令
then
執行語句1
else
執行語句2
fi多分支:
if 測試的語句或命令
then
執行語句1
elif
then
執行語句2
elif
then
執行語句3
elif
then
執行語句4
else
執行語句5
fi指令碼例項:
判斷使用者輸入的數值是正數還是負數:
知識點;
算數測試操作
if test -
then
執行語句1
elif
作業判斷輸入的成績在任麼檔位;
0-59 不及格
60-79 良
80-89 優
90-99 優+
100 滿分
#!/bin/bash
read -p 「please enter a number」: number
if [ $number -eq 100 ] ;then
echo 「the grade is a」
elif [ $number -ge 90 -a $number -le 99 ] ;then
echo 「the grade is b」
elif [ $number -ge 80 -a $number -le 89 ] ;then
echo 「the grade is c」
elif [ $number -ge 70 -a $number -le 79 ] ;then
echo 「the grade is d」
elif [ $number -le 59 -a $number -ge 0 ] ;then
echo 「the grade is z」
elif [ $number -ge 60 -a $number -le 69 ] ; then
echo 「the grade is e」
else
echo 「you enter nothing,please enter a number!」
fi
shell指令碼程式設計 if分支語句 分支結構
使用者的資訊會寫到 etc passwd 同時會生成此使用者名稱命名的家目錄 在 home 建立 從鍵盤讀取使用者輸入的密碼資訊,驗證輸入的密碼是否為123456 如果輸入正確,顯示密碼正確,如果錯誤,顯示密碼錯誤。ssh ip位址 vim passwd.sh bin bash read p 請輸入...
shell指令碼學習 分支 3
掌握條件分支語句語法 if case 1 條件判斷的或邏輯為 o 2 test用法和 用法等價。注意對於位置變數可以用等於號等符號,對於整形 字元 檔案只能用對應的判斷符號!3 條件為真時等於0!4 if判斷中用 外部 內部的前後不能由空格 5 case匹配項只能是字串,每個分支以 結束 基本原裡和...
Shell 指令碼程式設計
1 執行shell的方法 指定shell bin sh 由sh執行指令碼 指令碼總是由sh解釋 顯示呼叫shell sh scriptname 在當前shell中執行指令碼 profile profile是可執行的 ksh profile profile是不可執行的 改變當前的執行環境責應輸入.pr...