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 }'
}
良い経験則は次のとおりです。別名が単一のコマンドよりも複雑で特別な引用符などが必要な場合は、それをシェル関数として作成してください。