2014-06-28 21 views
10

Tôi đang viết tập lệnh cho git hook và gặp sự cố với câu lệnh if bên trong while.Bash scripting operator bất ngờ

File:

#!/bin/sh 
while read oldrev newref ref 
do 
    branch=$(git rev-parse --symbolic --abbrev-ref $ref) 

    if [ "a" == "a" ] 
    then 
     echo "Condition work" 
    fi 

    echo "$branch" 
done 

Lỗi:

hooks/post-receive: 6: [: a: unexpected operator 

Tôi sẽ cố gắng với các biến số, dấu ngoặc kép nhưng if không hoạt động. Có lỗi gì ở đây?

Cảm ơn

Trả lời

21

if [ "a" == "a" ] nên if [ "a" = "a" ].

bash chấp nhận == thay vì =, nhưng /bin/sh của bạn có thể không bị bash.

Vì vậy, hãy thay đổi == thành = hoặc shebang của bạn thành #!/bin/bash