bash [второй аргумент: команда не найдена

Итак, я столкнулся с проблемой при автоматизации своих проектов с помощью сценария оболочки bash и python...

Я хочу написать программу, которая поможет мне создавать новые репозитории с помощью GitHub. Однако я столкнулся с этой проблемой при выполнении своего кода.

По сути, я хочу запустить «create repo repo-name» и локально создать новый репозиторий github.

function create() {
    cd
    cd path/to/python/file
    python3 gh-create-command.py $*
    if [$1 == 'repo']
    then
        <creating repository>
    fi
}

Но когда я запускаю этот код, я получаю сообщение об ошибке bash: [repo: command not found.

Может ли кто-нибудь помочь мне здесь?

Пожалуйста, ответьте, если я должен опубликовать полный код.

Спасибо.

РЕДАКТИРОВАТЬ: ПОЛНЫЙ КОД

function create() { cd cd path/to/python/file python3 gh-create-command.py $* echo $1 if [ '$1' == 'repo' ] then cd cd path/ mkdir $2 cd $2 touch README.md git init cd .. cd path/to/python/file python3 gh-create-online-repo.py $* git remote add origin 'https://github.com/advaitvariyar/$2.git' git add . git commit -m "initial commit" git push -u origin master code . fi }

вывод: репо


person Fiery panda    schedule 26.04.2020    source источник
comment
Вы пропустили пробел после [   -  person Mat    schedule 26.04.2020


Ответы (1)


Вам не хватает пробелов, это должно быть:

if [ $1 == 'repo' ]

Также рекомендуется заключать все переменные в кавычки, чтобы избежать разделения слов:

if [ "$1" == 'repo' ]

и избегать Bashisms, чтобы сделать ваш код более переносимым. Использовать:

create() {

и

if [ "$1" = 'repo' ]

person Arkadiusz Drabczyk    schedule 26.04.2020
comment
Привет, я добавил пробел, но содержимое оператора if по-прежнему не выполняется. - person Fiery panda; 27.04.2020
comment
Это означает, что "$1" не равно 'repo'. Проверьте его значение непосредственно перед строкой if: echo "$1". - person Arkadiusz Drabczyk; 27.04.2020
comment
Я сделал это, и он дал репо в терминале - person Fiery panda; 27.04.2020
comment
Можете ли вы показать свой обновленный сценарий, отредактировав вопрос и опубликовав полученный результат? - person Arkadiusz Drabczyk; 27.04.2020
comment
Конечно function create() { cd cd path/to/python/file python3 gh-create-command.py $* echo $1 if [ '$1' == 'repo' ] then cd cd path/ mkdir $2 cd $2 touch README.md git init cd .. cd path/to/python/file python3 gh-create-online-repo.py $* git remote add origin 'https://github.com/advaitvariyar/$2.git' git add . git commit -m "initial commit" git push -u origin master code . fi } вывод: репо - person Fiery panda; 27.04.2020
comment
Это не by editing the question. - person Arkadiusz Drabczyk; 27.04.2020
comment
Убедитесь, что перед repo нет начальных пробелов. Попробуйте с if [ "$1" == ' repo' ] - person Arkadiusz Drabczyk; 27.04.2020
comment
Вы не можете использовать ' (одинарные кавычки) - это не будет отменять ссылку на переменную, вы должны использовать " (двойные кавычки), как я сказал в своем ответе. - person Arkadiusz Drabczyk; 27.04.2020