2017-05-01 1 views
0

wgetlynx -dump을 사용하여 간단한 웹 브라우저를 구현하는 스크립트를 작성하려고합니다.Bash if-else : 예기치 않은 토큰`else '근처에서 구문 오류가 발생했습니다.

다음
#!/bin/bash 
echo "Welcome, please do one of the options: 
Type an URL 
or press b to go BACK to the previuse URL 
or press q to QUIT " 

read x 

if [[ $x = "q" ]] 
then 
    exit 
elif [[ $x = "b" ]] 
tail -n urls.txt | wget 
else 
    $x >> urls.txt 
    wget $x 
fi 

내가 ./browser을 실행하고 단지 q를 입력하려고 할 때 내가 무엇을 얻을 : (종료 q을 돌아가 b 또는) 할 것을 사용자에게 요청하려고 할 때 나는 구문 오류와 붙어있어 :

$ ./browser 
Welcome, please do one of the options: 
Type an URL 
or press b to go BACK to the previuse URL 
or press q to QUIT 
q 
./browser: line 14: syntax error near unexpected token `else' 
./browser: line 14: `else' 

나는 대신 명령을 받아들이고 오류없이 종료 할 것으로 예상했습니다.

+1

, 당신은 코드와 여기에 오류 메시지를 추가해야합니다. [편집] 및 코드 형식 지정을 사용하십시오. 스크린 샷은 질문하는 올바른 방법이 아닙니다. [도움말]에서 자세히 알아보십시오. – jm666

+1

스크린 샷을 사용하는 대신 코드를 붙여넣고 오류 메시지를 명시 적으로 포함하십시오. – user2141130

+0

에 오신 것을 환영합니다! 스크린 샷, 실제 출력 (사용자가받는 오류 메시지) 및 예상 출력 (발생한 결과)에서 작성한 코드로 질문을 업데이트했습니다. 이것은 일반적으로 다음 질문에 적용 할 수있는 질문을하기에 좋은 형식입니다! :) –

답변

2

elifthen

예컨대 필요 더 많은 답변을 얻을하려는 경우

if false 
    then 
     echo in if 
    elif true 
    then 
     echo in elif 
    fi 
0
read x 

    if [[ $x = "q" ]] 
    then 
     exit 
    elif [[ $x = "b" ]] 
    then     //you missed "then" here 
    tail -n urls.txt | wget 
    else 
     $x >> urls.txt 
     wget $x 
    fi 
+1

이 코드 스 니펫은 환영 받고 도움을 줄 수도 있지만, 설명을 포함하면 크게 개선 될 것입니다 (// meta.stackexchange.com/q/114762). 그것이 없으면 당신의 대답은 교육 가치가 훨씬 낮아집니다 - 당신이 지금 묻는 사람이 아니라 미래의 독자들에게 질문에 답하고 있다는 것을 기억하십시오! 설명을 추가하려면 답을 편집하고 어떤 제한 및 가정이 적용되는지 표시하십시오. –

관련 문제