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

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

おすすめ記事