![bash_profile은 터미널의 명령과 다르게 동작합니다.](https://linux55.com/image/119607/bash_profile%EC%9D%80%20%ED%84%B0%EB%AF%B8%EB%84%90%EC%9D%98%20%EB%AA%85%EB%A0%B9%EA%B3%BC%20%EB%8B%A4%EB%A5%B4%EA%B2%8C%20%EB%8F%99%EC%9E%91%ED%95%A9%EB%8B%88%EB%8B%A4..png)
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 }'
}
좋은 경험 법칙은 다음과 같습니다. 별명이 단일 명령보다 더 복잡하고 특별한 인용부호 등이 필요한 경우 이를 쉘 함수로 작성하십시오.