Я использую 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
Линия
git commit —a -m “$1”
содержит несколько символов, которые выглядят похожими на те, которые интерпретирует оболочка, но на самом деле являются другими символами.
Первый —a
против -a
: Из-за более длинной черты этотнетинтерпретируется как опция, а как имя файла. Используйте -
здесь стандартный тире/минус ( ).
Второе “$1”
против "$1"
: Строка комментария к вашей регистрации будет разделена на отдельные слова, а первое и последнее слово будут расширены забавным символом.
Во всех случаях похоже, что вы либо использовали неподходящий редактор для написания программ и скриптов, либо скопировали и вставили что-то с какого-то сайта, который это исказил. Вам нужны простые символы ASCII, поскольку они находятся прямо на вашей клавиатуре, а не "красиво напечатанные" варианты, предназначенные для людей. Если сомневаетесь, скопируйте и вставьте их отсюда :-)