2010-11-14 3 views
0
#!/bin/bash 
echo "Please enter your Host Name" 
read hname 
echo "You have entered $hname, is this correct?" 
select yn in "Yes" "No"; do 
    case $yn in 
     Yes) sh runscript.sh; break;; 
     No) ; 
    esac 
done 

Как я могу сделать эту работу так, чтобы, если ответ неверен, вернитесь, чтобы снова спросить его? Я знаю, что мне нужен цикл while, чтобы достичь этого, но не знаю, как его записать.bash Пока? петля выбора

ответ

2

Это должно сделать это:


while [ "$yn" != "Yes" ]; do 
echo "Please enter your Host Name" 
read hname 
echo "You have entered $hname, is this correct? (Yes or No)" 
    read yn 
done 
sh runscript.sh 
+0

проверено, оно работает –

+0

, вы получаете баллы за это, спасибо за быстрый ответ в течение 15 минут. – jmituzas

0

Вот еще один ты помог мне писать:

#!/bin/bash 

     while ["$yn" != "Yes" ]; do 

    echo "Choose your type of installation" 

    echo "1) Home Media Server" 

    echo "2) Home Communication Server" 

    echo "3) Enterprise Communication Server" 

    echo "4) Hosting Server" 

    echo "5) Individual Packages" 

    echo "6) exit" 

    read case; 



    #simple case bash structure 

    # note in this case $case is variable and does not have to 

    # be named case this is just an example 



    case $case in 

     1) echo "You have entered Home Media Server, is this correct? (Yes or No)" 

     read yn 

       echo "Running script for Home Media Server";; 



     2) echo "You have entered Home Communication Server, is this correct? (Yes or No)" 

     read yn 

       echo "Running script for Home Communication Server";; 



     3) echo "You have entered Enterprise Communication Server, is this correct? (Yes or No)" 

     read yn 

       echo "Running script for Enterprise Communication Server";; 



     4) echo "You have entered Hosting Server, is this correct? (Yes or No)" 

     read yn 

       echo "Running script for Hosting Server";; 



     5) echo "You have entered $hname, is this correct? (Yes or No)" 

     read yn 

       echo "Running script for Individual Packages";; 



     6) exit 

    esac 

Спасибо еще раз.

Смежные вопросы