2014-10-08 4 views
0

구문 오류가 있습니다. 내 코드BASH Linux : 구문 오류«;; »

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

Syntax error near unexpected token « ;; » 

»이 이동하고 지금은 오류

을 가지고 있지에 오류가 나는 스크립트를 조금 수정 오류가 발생하는 이유 와 코드의 일부와이 부분입니다

원인을 할 수 있습니다 무엇

는 :

+1

'case'로 시작하는 코드 부분을 표시해야합니다. –

+0

이 코드는 버그를 재생산하기에 충분하지 않습니다. 주어진 코드 **가 질문에 게시하기 전에 ** 독자적으로 사용할 때보고하는 정확한 버그를 생성하는지 테스트하십시오. (버그를 재현하는 데 필요한 코드 조각을 없애는 것이 더 좋습니다.) –

+0

나는 완전한 코드를 제공한다 –

답변

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

롤 나는 이것을 잊어 버린다! 작동합니다! –