2014-10-08 70 views
0

我有一個語法錯誤«;; »BASH Linux:語法錯誤«;; »

Syntax error near unexpected token « ;; » 

我的代碼

#!/bin/bash 
# Bash Menu 

clear 

echo "Decryptor" 

PS3='entrez votre chois: ' 
options=("update" "decryptor" "Quit") 
select opt in "${options[@]}" 
do 
    case $opt in 
     "update") 
      php updatekey.php 
      break 
      ;; 
     "decryptor") 
      #Nom de la video 
      read -p "Nom de la série : " name 
      #detection du fichier .png 
      find . -name "*.png" | while read line 
      oname="$(basename "${line}" .png)" 
      #décryption du fichier png 
      php -e AES.class.php "${oname}".png 
      #on change le nom du fichier 
      mv "${oname}".ass "${name}".ass 

      read -p "voulez vous télécharger la video (Y/N)? " 
      [ "$(echo $REPLY | tr [:upper:] [:lower:])" == "y" ] || exit 

      read -p "entrez liens :" src 
      read -p "liens vod" vod 

      rtmpdump -v -T '567ghgh' -r "$vod" -a "vod" -f "WIN 13,0,0,182" -W "http://yoyo.com/components/yoyo.swf" -p "http://yoyo.com" -y "mp4:$src" -o "$name.mp4" 
      break 
      ;; 
     "Quit") 
      break 
      ;; 
     *) echo invalid option;; 
    esac 
done 

是錯誤 爲什麼我得到我修改劇本有點錯誤代碼的一部分,這部分不動,我現在有一個錯誤

什麼可以引起

謝謝:)

+1

您需要向我們展示上面的代碼部分,從'case'開始。 – 2014-10-08 03:31:29

+0

此代碼不足以完成重現錯誤。測試某個給定的代碼**會在發佈問題之前生成您自己使用時報告的確切錯誤**。 (拿出不需要的代碼片段來重現錯誤甚至更好)。 – 2014-10-08 03:31:36

+0

我給你我的完整代碼 – 2014-10-08 03:40:32

回答

2

林e 21包含一個不完整的while聲明的開始。解析器只會注意到,因爲;;在仍然在尋找do時是非法的。

find stuff | while read line 
    echo you can have multiple commands here -- 
    echo the exit code of the expression is 
    echo examined by '"while"' 
do 
    echo ... Body of while loop 
done 

您的代碼缺少dodone部分,目前還不清楚打壞(和我們),他們應該去。

+0

哈哈,我忘了這個(做完)!作品! – 2014-10-08 03:50:29