다음과 같은 별칭이 있습니다.
alias mv='mv -i'
alias git='LANG=en_US \git '
git mv
그런 다음 명령을 실행하면 mv
다음과 같이 해석됩니다 mv -i
.
$ git mv a b
error: unknown switch `i'
bash 명령인 경우에만 별칭을 적용하고 싶습니다.
버전:
- 우분투 16.04.3 LTS
- GNU 배시, 버전 4.3.48(1)
- git 버전 2.7.4 (git과도 연결되어 있지 않은 것 같습니다)
노트:
git \mv a b
일하다- 앨리어싱 git을 취소하는 것도 가능합니다
\git mv a b
답변1
git
별칭 이니까공백으로 끝나다, bash는 다음 단어에 대해 별칭 확장을 수행합니다.
$ alias mv='mv -i'
$ alias git=': git '
$ set -x
$ git mv
+ : git mv -i
~에서문서:
별칭 값의 마지막 문자가 비어 있으면 별칭 뒤의 다음 명령 단어에서도 별칭 확장이 확인됩니다.
git
공백 없이 별칭을 만듭니다 .
alias git='LANG=en_US git'
알아채다:
대체 텍스트의 첫 번째 단어는 별칭이 있는지 테스트되지만 확장되는 단어와 동일한 별칭을 가진 단어는 다시 확장되지 않습니다. 예를 들어 별칭을 지정할
ls
수ls -F
있으며 Bash는 대체 텍스트를 재귀적으로 확장하려고 시도하지 않습니다.
\git
그러니 거기 있을 필요는 없습니다 .