shell中邏輯與的兩種表示方法


bash中表示邏輯與的兩種方法:

(1)[ $state == "running" -a $name == "zone1" ]

(2)[[ $state == "running" && $name == "zone1" ]]

ksh中支持第二種。

實例:

#! /bin/bash 
read -p "pelease input your name:" name
read -p "pleaase input your password:" passwd

if [ $name == "root" -a $passwd == "123" ]; then
    echo "登錄成功!"
else
    echo "登錄失敗!"
fi

if [[ $name == "root" && $passwd == "123" ]]; then
       echo "Login pass"
else
    echo "Login fail"
fi    

輸出結果:
pelease input your name:root
pleaase input your password:123
登錄成功!
Login pass

 

在ksh中read -p的使用好像有問題,會出現./learn_shell.save[2]: read: no query process,這樣的錯誤提示。

因此改成下面的形式:

(1)第一種

echo "ThePrompt\c"

read TheSomthing

echo $TheSomething

(2)第二種

read TheSomething?'ThePrompt'


細微區別就是第一種提示語句后會回車,而第二種不會回車。

實例:

#! /usr/bin/ksh 
echo "pelease input your name:"
read name

read passwd?"pleaase input your password: "

if [[ $name == "root" && $passwd == "123" ]]; then
       echo "Login pass"
else
    echo "Login fail"
fi    

# ./learn_shell.save 
pelease input your name:    (這個地方有回車)
root
pleaase input your password: 123
Login pass

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM