bash: git pull работает только если это последняя команда - PullRequest
0 голосов
/ 01 ноября 2018

платформа: Raspberry Pi 3 B

Пожалуйста, помогите мне с этим, git pull работает, только если это последняя команда, но она мне нужна раньше. Это странно для меня, и я не нашел никакого решения


работает

script.sh

#!/bin/bash
echo Hello World
git pull

sh script.sh дает:

Hello World
Already up-to-date.

не работает

script.sh

#!/bin/bash
echo Hello World
git pull
echo Hello World

sh script.sh дает:

Hello World
' is not a git command. See 'git --help'.


Did you mean this?
    pull
Hello World

Ответы [ 2 ]

0 голосов
/ 01 ноября 2018

Нет другой причины, кроме того, что, возможно, ваш скрипт содержит закрытые кавычки или специальные символы. Фактически, исходя из сообщения об ошибке, он обрабатывает Hello World как команду git.

Как будто вы говорите:

[vturlapati:~] $ git Hello World
git: 'Hello' is not a git command. See 'git --help'.

The most similar command is
    reflog
[vturlapati:~] $ git 'Hello World'
git: 'Hello World' is not a git command. See 'git --help'.

Можете ли вы перепроверить специальные символы? Если вы используете vim, вы можете сделать это, выполнив :set list

0 голосов
/ 01 ноября 2018

Файл имеет неправильный формат EOL (CRLF). CRLF - это формат текстовых файлов, которые пишутся в приложении Windows. * NIX использует LF в качестве разделителя EOL, так что ваш интерпретатор получает странный символ (CR) как часть содержимого каждой строки, и он передается в git как часть команды, которую вы вызываете ... вот почему он ломается. Запустите dos2unix script.sh, чтобы преобразовать его, чтобы его можно было правильно прочитать.

...