shell指令碼程式設計 分支結構if分支語句,多分支

2021-10-03 13:41:58 字數 3084 閱讀 9495

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...