다음과 같은 bash 기능이 있습니다.
tg() {
git add -A && git commit -m $1 && git push
}
하지만 작동하지 않는 것 같습니다.
$ tg "create index for users"
error: pathspec 'index' did not match any file(s) known to git.
error: pathspec 'for' did not match any file(s) known to git.
error: pathspec 'users' did not match any file(s) known to git.
분명히 문제는 따옴표가 확장되고 중간 명령이 git commit -m create index for users
다음과 같이 읽힌다는 것입니다.git commit -m "create index for users"
내가 뭘 잘못했나요? 이 문제를 어떻게 해결할 수 있나요?
답변1
큰따옴표 확장 $1
:
tg() {
git add -A &&
git commit -m "$1" &&
git push
}
따옴표 없이 두면 $1
쉘은 해당 값(의 내용)을 공백으로 분할 $IFS
하고 결과 단어는 추가로 파일 이름 글로빙이 됩니다.
관련된: