Использование выбора дает синтаксическую ошибку - PullRequest
3 голосов
/ 14 ноября 2010

Я пытаюсь заставить это работать:

echo "Would you like to configure dns?"
select yn in "Yes" "No"; do
    case $yn in
        Yes ) echo "you have selected to configure dns"; break;;
        No ) exit; break;;
    esac
done

Я получаю эту ошибку:

menu.sh: 2: выберите: не найдено
меню.sh: 7: Синтаксическая ошибка: «выполнено» неожиданно

Заранее спасибо, Джо

Ответы [ 3 ]

12 голосов
/ 14 ноября 2010

Убедитесь, что вы используете его в bash, так как select понимается bash, а не некоторыми оболочками, такими как sh.

0 голосов
/ 16 ноября 2010

Вот хороший, который я написал с помощью этого форума:)

     #!/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 
0 голосов
/ 14 ноября 2010

Либо просто переписать, используя while, read и case. Я думаю select на самом деле не добавляет много.

...