저는 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
vs -a
: 대시가 더 길기 때문에~ 아니다옵션으로 해석되지만 파일 이름으로 해석됩니다. 여기에는 표준 대시/빼기( -
)를 사용하세요.
두 번째 “$1”
vs "$1"
: 체크인 설명 문자열이 별도의 단어로 분할되고 첫 번째 단어와 마지막 단어가 재미있는 문자로 확장됩니다.
모든 경우에 프로그램과 스크립트를 작성하는 데 적합하지 않은 편집기를 사용했거나 해당 작업을 수행한 일부 사이트에서 내용을 복사하여 붙여넣은 것처럼 보입니다. 키보드에 직접 있는 일반 ASCII 문자가 필요하며 인간을 위한 "예쁜 인쇄" 변형이 아닙니다. 의심스러운 경우 여기에서 복사하여 붙여넣으세요. :-)