次のエイリアスがあります。
alias mv='mv -i'
alias git='LANG=en_US \git '
git mv
その後、コマンドを実行すると、mv
次のように解釈されますmv -i
。
$ git mv a b
error: unknown switch `i'
bashコマンドの場合にのみエイリアスを適用したいと思います。
バージョン:
- Ubuntu 16.04.3 LTS
- GNUバッシュ、バージョン4.3.48(1)
- gitバージョン2.7.4(gitにも関連付けられていないようです)
メモ:
git \mv a b
働く- エイリアシングgitをキャンセルすることも可能です
\git mv a b
ベストアンサー1
git
エイリアスだから空白で終わる, bash は、次の単語に対してエイリアス拡張を実行します。
$ alias mv='mv -i'
$ alias git=': git '
$ set -x
$ git mv
+ : git mv -i
~から文書:
エイリアス値の最後の文字が空の場合、エイリアスの後の次のコマンドワードでもエイリアス拡張が確認されます。
git
スペースなしでエイリアスを作成します。
alias git='LANG=en_US git'
気づく:
代替テキストの最初の単語はエイリアスがあるかどうかをテストしますが、拡張する単語と同じエイリアスを持つ単語は再び拡張されません。たとえば、別名を指定
ls
できますls -F
が、Bashは代替テキストを再帰的に拡張しようとしません。
\git
だからそこにいる必要はありません。