Ошибка в маленьком скрипте - PullRequest
0 голосов
/ 22 июля 2011

Когда я запускаю программу и нажимаю «Да» выдает ошибку:

/home/zygis/tools/script: 26: Syntax error: ")" unexpected (expecting ";;")

Код:

DIALOG=${DIALOG=dialog}

$DIALOG --title " My first dialog" --clear \
        --yesno "You really want to run this program?" 10 30

case $? in
  0)
    if [ "$1" = "start" ];
    then
            echo "Enter OS: ";
            read OS
            echo OS
            python /home/zygis/tools/dj.py $OS
    else
        if [ "$1" = "uprint" ];
        then
            echo "usage: {start}";
            echo "example: (./boot start)";
        else
            echo "Invalid choice";
            echo "To usage use uprint";
        fi
    fi
  1)
    echo "No chosen.";
  255)
    echo "ESC pressed.";
esac

Ответы [ 3 ]

3 голосов
/ 22 июля 2011

Каждый случай вашего case/esac должен заканчиваться ;;. См. Справочную страницу ...

case $? in
  0)
    if [ "$1" = "start" ];
    then
            echo "Enter OS: ";
            read OS
            echo OS
            python /home/zygis/tools/dj.py $OS
    else
        if [ "$1" = "uprint" ];
        then
            echo "usage: {start}";
            echo "example: (./boot start)";
        else
            echo "Invalid choice";
            echo "To usage use uprint";
        fi
    fi
    # Terminate.....
    ;;
  1)
    echo "No chosen.";
    # Terminate.....
    ;;
  255)
    echo "ESC pressed.";
    # Terminate.....
    ;;
esac
1 голос
/ 22 июля 2011

Используйте две точки с запятой ;; чтобы закончить каждый случай, т. е.

case ...
1) some_command ;;
2) other command ;;
esac
1 голос
/ 22 июля 2011

Вы должны использовать ";;" чтобы закончить ваши дела.

case $? in
    0)
        echo "case 0";;
    1)
        echo "case 1";;
esac
...