Похожие вопросы

Как сделать резервную копию недавно измененных файлов в Bash?
Как запустить сценарий bash, вызванный формой html?
Учетные записи пользователей в WSL (Подсистема Windows для Linux)
Резервное копирование закладок Firefox и других личных файлов bash скрипт
Запустить сеанс PuTTy на удаленном хосте по сети
Использование systemd для выполнения интерактивного сценария (whiptail) после многопользовательского.цель, но до экрана входа в систему
Mac OSX Mavericks-ZSH не может "Источник ~/.zshrc' слишком много открытых файлов
скрипт списка сайтов для определения шифров
Выполнить команду из результата grep
команда cat выводит весь каталог при использовании в скрипте bash
Найти имена файлов с расширением в верхнем регистре
Cygwin bash sed блокирует мои файлы
Что такое SHELL-формат в envsubst?
Как распечатать команду bash history и добавить ее в файл?
Как впоследствии выполнить все команды в crontab?

в bash: ошибка синтаксиса около неожиданной лексемы `-о'

Я получаю ошибку при запуске сценария bash для резервного копирования ветвей git:

сценарий выглядит следующим образом:

#!/usr/local/bin/bash
# this shebang assumes you have bashv4 installed. If not, use /bin/bash

echo "running backup branch script"

current_branch="$(git branch | grep '* ' | sed 's/^.*( .*)//g')"

dltbranch() {
    git push origin --delete 
    git push upstream --delete 
    git branch -D 
}

backup_branch() {
    git checkout 
    git checkout -b backup__
    dltbranch 
}

reset_branch() {
    the_new_current_branch="$(git branch | grep '* ' | sed 's/^.*( .*)//g')"
    echo "$the_new_current_branch"
    if [ ! $the_new_current_branch =  ]; then
        git checkout 
    fi
}

branch_is_protected(){
    if [[ "" == dev* ]] -o [[ "" == "master"]] -o [[ "" == backup* ]]
    then
        echo "protected"
        exit 1
    else
        echo "not protected"
        exit 0
    fi
}

backup_all_branches(){
    branches="$(git for-each-ref refs/heads | cut -d/ -f3-)"
    echo $branches

    for branch in `echo "$branches"`; do

        backup_branch "$branch";
        # echo "$branch"
    done
}

как и ожидалось, у меня нет ошибок в shellcheck и не вижу никаких ошибок. Проблема устранена путем комментирования branch_is_protected

branch_is_protected(){
    if [[ "" == dev* ]] -o [[ "" == "master"]] -o [[ "" == backup* ]]
    then
        echo "protected"
        exit 1
    else
        echo "not protected"
        exit 0
    fi
}

enter image description here

любая помощь ценится, ty

5
задан codyc4321
источник

1 ответов

попробуйте использовать || для представления:

branch_is_protected(){
    if [[ "" == dev* || "" == "master" || "" == backup* ]]
    then
        echo "protected"
        exit 1
    else
        echo "not protected"
        exit 0
    fi
}
0
отвечен D Schlachter 2017-04-12 20:51:25
источник

Другие вопросы bash git macos