2013-11-01 3 views
0

bash에서 "if"문을 사용하는 첫 번째 스크립트를 빌드하려고합니다. 그것은 두 개의 스크립트를 결합하여 파일의 사본을 여러 개 만들었습니다. 하나는 이름이 숫자로 추가 된 스크립트이고 다른 하나는 A-Z를 사용하는 스크립트입니다.bash "if .. elif"스크립트의 구문 오류

나는 많은 변화를 시도했지만 내 원래의 비 작동 코드 나는 절대적으로이 오류 메시지가 여기에

./cpmany.sh: line 18: syntax error near unexpected token elif' ./cpmany.sh: line 18: elif [ $alpha="A" ]; then'

없이 동작하지 않습니다 : 여기에

#!/bin/bash 
set -x 
echo "input file source" 
read INPUT 
echo "Alphabetical or Numerical" 
read alpha 
if [ $alpha=="N" ]; then 
echo "start of range" 
read x 
echo "end of range" 
read y 
    for ((i=x; i<=y; i++)); do cp "$INPUT" "$INPUT$i"; 
elif [ $alpha=="A" ]; then 
    for i in {a..z} 
    do 
    echo "$i" 
    cp "$INPUT" "$INPUT$i"; 
else 
    echo "error in selection"; 
fi 
exit 0 

내 전류 if [$ alpha = "N"]에 "done"및 공백이 추가 된 코드

#!/bin/bash 
echo "input file source" 
read INPUT 
echo "Alphabetical or Numerical" 
read alpha 


if [ $alpha = "N" ]; then 
echo "start of range" 
read x 
echo "end of range" 
read y 

    for ((i=x; i<=y; i++)); do cp "$INPUT" "$INPUT$i"; 
done 
elif [ $alpha = "A" ]; then 
    for i in {a..z}; 
    do 
    echo "$i" 
    cp "$INPUT" "$INPUT$i"; done 
else 
    echo "error in selection"; 
fi 
done 
exit 0 
+0

또한 테스트 조건에서'= "주위에 공백을 넣어야합니다 :'["$ "="N "]'. – chepner

답변

3

닫기를 잊으 셨습니다. 그는 for의 루프와 done.

+0

나는 fi 다음에 줄에 "done"을 추가했지만, 여전히 같은 오류가 발생합니다. –

+0

_two_ 루프에'done'이 없습니다. –

+0

"elif"앞에 줄에 두 번째 줄을 추가했습니다. 이제 > ./ cpmany.sh : 줄 23 : 예기치 않은 토큰'else '근처에 구문 오류가 있습니다. > ./cpmany.sh : 줄 23 :! –