2010-06-15 3 views
4

I가 복사 "bash는 요리 책"(1 판)에서 붙여 넣은 다음 배쉬 코드 :이 (bash는 4.0.33)을 실행하면왜이 간단한 bash 코드가 구문 오류를 줍니까?

#!/bin/bash 

VERBOSE=0; 
if [[ $1 =-v ]] 
then 
    VERBOSE=1; 
    shift; 
fi 

, 나는 다음과 같은 구문 오류 :

./test.sh: line 4: conditional binary operator expected 
./test.sh: line 4: syntax error near `=-v' 
./test.sh: line 4: `if [[ $1 =-v ]]' 

bash 요리 책에 잘못 인쇄되었거나 버전이 호환되지 않습니까? 가장 확실한 해결 방법은 무엇입니까? 나는 연산자를 변경하는 다양한 조합을 시도했지만, 나는 bash 스크립팅에 익숙하지 않다.

답변

11

Bash는 토큰 화 스크립트에 공백을 사용합니다. 라인 :

if [[ $1 =-v ]] 

가 있어야한다 :

if [[ $1 = -v ]] 
+0

은 내가하지만 분명하지, 내가 그 시도했던 맹세 할 수있다. 감사. –