bash_profile은 터미널의 명령과 다르게 동작합니다.

bash_profile은 터미널의 명령과 다르게 동작합니다.

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 }'
}

좋은 경험 법칙은 다음과 같습니다. 별명이 단일 명령보다 더 복잡하고 특별한 인용부호 등이 필요한 경우 이를 쉘 함수로 작성하십시오.

관련 정보