Я использую OSX и хочу добавить функцию в терминале для запуска набора команд git. Поэтому я создал .bash_profile в своем домашнем каталоге с кодом ниже:

# Setting PATH for Python 2.7
# The orginal version is saved in .bash_profile.pysave
PATH="/Library/Frameworks/Python.framework/Versions/2.7/bin:${PATH}"
export PATH=/usr/local/bin:$PATH

export PATH="$PATH:"/Applications/microchip/xc8/v1.35/bin""

export PATH=$PATH:"/Applications/microchip/xc16/v1.25/bin"

export PATH="$PATH:"/Applications/microchip/xc8/v1.38/bin""

function lazygit() {
    git add .
    git commit —a -m “$1”
    git push
}

Однако после запуска этого кода я получаю следующую ошибку:

Seths-Air:rpt04-recursion Seth$ lazygit "test of lazygit"
error: pathspec '—a' did not match any file(s) known to git.
error: pathspec 'of' did not match any file(s) known to git.
error: pathspec 'lazygit”' did not match any file(s) known to git.
Everything up-to-date

1 ответ1

0

Линия

git commit —a -m “$1”

содержит несколько символов, которые похожи на те, которые интерпретирует оболочка, но на самом деле это другие символы.

Сначала —a против -a: из-за более длинного тире это не интерпретируется как опция, а как имя файла. Используйте стандартную черту / минус (-) здесь.

Второй “$1” против "$1": Ваша строка комментария о регистрации будет разбита на отдельные слова, а первое и последнее слова будут дополнены забавным символом.

Во всех случаях похоже, что вы либо использовали неподходящий редактор для написания программ и сценариев, либо копировали и вставляли материал с какого-то сайта, который делал это. Вам нужны простые символы ASCII, так как они находятся прямо на вашей клавиатуре, а не варианты «pretty-print», предназначенные для людей. Если сомневаетесь, скопируйте и вставьте их отсюда :-)

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .