Синтаксическая ошибка рядом с неожиданным токеном "elif" в bash - PullRequest
0 голосов
/ 01 декабря 2011

Вот мой код для отображения некоторых диалогов.

#!/bin/bash
output=$(zenity  --list --text="Choose action" --column= --hide-header "Hidden Files" "Desktop")
if [ $output = "Hidden Files"]
    then
        output2=$(zenity  --list --text="Do what?" --column= --hide-header "Show" "Hide")
        if [ $output2 = "Show"]
            then
                echo showing files
            else
                echo hiding files
elif [ $output = "Desktop"];then
        output3=$(zenity  --list --text="Do what?" --column= --hide-header "Show" "Hide")
        if [ $output2 = "Show"]
            then
                echo showing files
            else
                echo hiding files
    else
        exit
fi

Я получаю эту ошибку после первого диалога:

systool.sh: line 12: syntax error near unexpected token `elif'
systool.sh: line 12: `elif [ $output = "Desktop"];then'

Что не так?

Ответы [ 3 ]

4 голосов
/ 01 декабря 2011

Вам нужно закрыть оба ваших внутренних оператора if-else с помощью fi.

Например:

    if [ $output2 = "Show"]
        then
            echo showing files
        else
            echo hiding files
    fi

Вам также нужен пробел перед закрытием ] в ваших условиях if. Например:

    if [ $output2 = "Show" ]
0 голосов
/ 01 декабря 2011

Вы пропускаете fi после обоих echo hiding files

0 голосов
/ 01 декабря 2011

Ваши внутренние if s не имеют соответствующих fi s.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...