2013-10-26 3 views
2

bash 스크립트를 작성했으며 변수가 비어 있는지 여부를 테스트 할 때 오류가 발생합니다.예기치 않은 토큰 bash 오류

내가 변수 a와 FNE하지만

#! /bin/bash 

for f in /path/* 
do 
    a=`some command output` 
    fne=`this command operates on f` 
    if[ -z "$a" ] 
    then 
     echo "nothing found" 
    else 
     echo "$fne" "$a" 
    fi 
done 

오류에 값을 할당하는 실행 명령 언급하지 않은 : 예기치 않은 토큰 근처의 구문 오류, "다음"을 다음

은 예제 스크립트입니다 .

#! /bin/bash 

for f in /path/* 
do 
    a=`some command output` 
    fne=`this command operates on f` 
    if[ -z "$a" ]; then 
     echo "nothing found" 
    else 
     echo "$fne" "$a" 
    fi 
done 

다시 같은 오류 :

는이 같은 또 다른 변화를 시도했다.

if[ "$a" == "" ]; then 

다시 같은 오류 :

나는이 방법을 비교하려고 할 때.

무엇이 오류의 원인인지 잘 모르겠습니다. 변수 A의 값은 다음과 같다 : X, Y]

포함 된, 공간, 브라켓, 콤마, 콜론 : 그것은 (1)와

무언가. 비교할 때 변수 이름을 큰 따옴표로 묶습니다.

+0

그것은 이유를 파악하기 어렵습니다 ... 당신의 오타 구문 색의 것 당신은 루프를 사용하고 있습니다. 변수'f'를 사용하지 않는 것 같습니다. – devnull

답변

6

당신은 if 후 공간을 누락 :

#! /bin/bash 

for f in /path/* 
do 
    a=`some command output` 
    fne=`this command operates on f` 
    if [ -z "$a" ]; then 
     echo "nothing found" 
    else 
     echo "$fne" "$a" 
    fi 
done 

사이드 참고 : 당신이 편집 vi를 사용한다면, 그것은

+0

감사합니다. 나는 그것을 이해했다 :) –