Неожиданный оператор сценариев Bash

#bash #shell

#bash #оболочка

Вопрос:

Я пишу скрипт для git hook и у меня проблемы с if оператором внутри while .

Файл:

 #!/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
  

Ошибка:

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

Я попробую с переменными, двойными кавычками, но if не работает. Что за ошибка здесь?

Спасибо

Ответ №1:

if [ "a" == "a" ] должно быть if [ "a" = "a" ] .

bash принимает == вместо = , но ваш /bin/sh , вероятно, не bash.

Так что либо измените == на = , либо ваш shebang на #!/bin/bash