git branch -r | awk '{print $1}'
터미널에 다음을 입력하세요.
origin/HEAD
origin/master
그리고 alias test1="git branch -r | awk '{print $1}'"
수익률은 다음과 같습니다 .bash_profile
.
origin/HEAD -> origin/master
origin/master
에서는 왜 awk '{print $1}'
무시됩니까 .bash_profile
?
답변1
별칭 정의:
$ alias test1="git branch -r | awk '{print $1}'"
그런 다음 정의를 살펴보십시오.
$ alias test1
alias test1='git branch -r | awk '\''{print }'\'''
어떻게 $1
사라졌는지 볼까요? 별칭 정의가 큰따옴표로 묶여 있기 때문입니다. 이는 쉘이 $1
별명을 정의하는 문자열의 변수를 확장한다는 것을 의미합니다. 해당 값은 비어 있습니다.
별명 정의 주위에 작은따옴표를 사용하거나 escape 를 사용 $
하거나 올바른 함수를 작성하십시오.
test1 () {
git branch -r | awk '{ print $1 }'
}
좋은 경험 법칙은 다음과 같습니다. 별명이 단일 명령보다 더 복잡하고 특별한 인용부호 등이 필요한 경우 이를 쉘 함수로 작성하십시오.