私は周りを検索しましたが、決定的なものは何も見つかりませんでした。 zshのaliasコマンドとbashのaliasコマンドに違いはありますか?そうでない場合は、2つのシェル間でエイリアスのセットを共有し、意図したとおりに機能することを期待できるということですか?
Zsh Workshop Aliases によると、構文は同じように見えるので、機能するはずです。
alias
コマンドの構文は、すべてのボーンスタイルのシェルで同じです。したがって、すべてのシェルで意味がある限り、~/.zshrc
、~/.bashrc
、~/.kshrc
、~/.shrc
間で共有できます。
すべてのシェルでサポートされている構文のサブセットを使用する限り、変数定義と関数定義についても同じことが言えます。
4.0より前のバージョンのzshを使用しない場合は、シェルに依存しないすべての定義を(たとえば)~/.common.rc.sh
というファイルに入れることができます。最初の行は
emulate -LR sh 2>/dev/null
これは、このファイルでのみsh互換の構文を期待するようにzshに指示します。次に、そのファイルを~/.bashrc
、~/.bashrc
、~/.kshrc
などの先頭近くで調達します。
これは基本的に私がしていることです。たとえば、利用可能なもの(--color
、-G
、-F
など)に応じてお気に入りのオプションを使用してls
のエイリアスを生成するやや複雑なコードがあります。シェルに依存しないため、.common.rc.sh
に入ります。 alias zcp='zmv -C'
に入る.zshrc
のようなシェル依存のエイリアスもあります。
zsh
のalias
はグローバルエイリアスを許可しますが、bash
sは行の先頭でのみ展開されます。
zsh
:
alias -g L="| less -FRX"
その後、次のことができます。
verbose-command L
役立つグローバルエイリアスのリストについては、 ここ を参照してください。