2011-12-01 116 views
0

這裏是我的代碼來顯示一些對話框。bash中意外標記「elif」附近的語法錯誤

#!/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' 

的哪些錯誤?

回答

4

您需要關閉兩個內部的if-else語句,並使用fi

例如:

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

你還需要在你的情況,如果收盤前]的空間。例如:

if [ $output2 = "Show" ] 
+2

LOL哇我傻後fi。 – t3hcakeman

+0

出現了一個新問題......'systool.sh:第14行:[:=:一元運算符預計' – t3hcakeman

+0

「桌面」下的if語句指的是錯誤的變量。它應該是output3,而不是output2。更改爲:'if [$ output3 =「Show」]' – dogbane

0

您的內心if s沒有相應的fi s。

0

你錯過了這兩個echo hiding files

相關問題