2010-11-16 7 views
0

Как я могу получить больше вариантов ответа?Дополнительные опции меню выбора Bash

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 

Хотел бы ответить «Да» «Да» «Y» или «у», как это может быть сделано? Thanks in Advance, Joe

ответ

0

Исправлено! Думайте, что это лучше всего работает:

while [[ "$yn" != "Yes" && "$yn" != "Y" && "$yn" != "y" && "$yn" != "yes" ]]; do 

Yay!

1

Как и любой другой язык, у Bash есть логические операторы. Вы можете создать что-то подобное с Bash (это псевдо-код):

If answer equals "Yes", or answer equals "yes": 
    bla bla 

Я рекомендую вам посмотреть на Bash учебник, вы увидите, что и многое другое! Cheers.

6
while [ -z "$yn" ] 
do 
    read -p "Please enter your Host Name" hname 
    read -p "You have entered $hname, is this correct? (Yes or No)" yn 
    case $yn in 
     Y|y|Yes|yes);; # this is a no-op 
     *) unset yn;; 
    esac 
done 
Смежные вопросы