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
消失的?那是因为您的别名定义用双引号引起来。这意味着 shell 扩展了$1
定义别名的字符串中的变量。它的值是空的。
在别名定义周围使用单引号、转义$
或编写正确的函数:
test1 () {
git branch -r | awk '{ print $1 }'
}
一个好的经验法则可能是这样的:如果您的别名比单个命令更复杂(并且需要特殊引用等),则将其编写为 shell 函数。