//使用者的資訊會寫到/etc/passwd
//同時會生成此使用者名稱命名的家目錄 在/home 建立
從鍵盤讀取使用者輸入的密碼資訊,驗證輸入的密碼是否為123456
如果輸入正確,顯示密碼正確,如果錯誤,顯示密碼錯誤。
# ssh ip位址
# vim passwd.sh
#!/bin/bash
read -p 「請輸入密碼:」 passwd
if test $passwd =「123456」 //字串建議用雙引號
# if [ $passwd = 「123456」] //用中括號測試語句
then
echo 「passwd is ok 」
else
echo 「密碼輸入錯誤」
fi 解決輸入的密碼資訊和已有的資訊做匹配的問題:
使用test測試:
檔案屬性測試
字串測試
算數測試
命令格式:
test 測試語句
[測試語句] //括號兩遍要有空格
檔案屬性測試
-e 檔案存在為真
-t 檔案存在為真且是乙個常規檔案
-d 檔案存在為真且是乙個目錄
-c 檔案存在為真且特殊字元為真
-b 檔案存在為真且是乙個特殊塊
-g 檔案存在且設定了sgid位為真
-u 檔案存在且設定了ugid位為真
-r 檔案存在且可讀為真
-w 檔案存在且可寫為真
-x 檔案存在且可執行為真
-s 檔案存在且不為空為真
邏輯與和邏輯或:
&& 邏輯與
|| 邏輯或
true 為真
false 為假
true && false --> false (true)
當第乙個條件為真時,返回第二個條件 false
true && true --> true (true)
false && false --> false (false)
當第乙個條件為假時,返回第乙個條件
//兩者都為真(假),結果為真(假)
//有乙個為假(真),結果為假(真)
字串測試:
-z 為空為真
-n 不為空為真
= 相同為真
!= 不相同為真
> 字典排名在前為真
< 字典排名在後為真
if test -z $username
then
echo 「請輸入密碼:」
else
執行密碼不為空的語句
fi算數測試操作:
-eq 等於
-ne 不等於
-gt 大於
-ge 大於等於
-lt 小於
-le 小於等於
單分支:
if 測試的語句或命令
then
執行語句1
fi雙分支:
if 測試的語句或命令
then
執行語句2
fi多分支:
if 測試的語句或命令
then
執行語句1
elif
執行語句2
elif
執行語句3
else
執行語句4
fi
shell指令碼程式設計 分支結構if分支語句,多分支
1.5 shell指令碼程式設計 分支結構if分支語句,多分支 使用者的資訊會寫到 etc passwd 同時會生成以此使用者名稱命名的家且錄 在 home建立 從鍵盤讀取使用者輸入的密碼資訊,驗證輸入的密碼是否為123456,如果輸入正確,顯示密碼正確,如果錯誤,顯示密碼錯誤。bin bash r...
shell程式設計 if else fi分支語句
1.if then elif else fi 與c語言的類似,if 某個條件 成立就執行 這後面 要加乙個 then 可以理解成那麼 elif c語言中的 else if 某個條件 fi 則是 結束 這個 if 語句的結束標誌 因為 c語言中 一般都是 if 用 括號結束 但是 shell中則不是用...
shell程式設計 case esac分支語句
case esac分支語句就類似於c語言的switch case 分支語句,但是呢語法又有些不同我們先來看乙個簡單的例子 然後我們再來講解一下各個 關鍵字元 或者關鍵字的含義 這裡read yes or no等待使用者輸入乙個字串 程序阻塞 然後 case yes or no in 這個 in 表示...