zshのエイリアスとbashのエイリアスの違い

zshのエイリアスとbashのエイリアスの違い

周辺を検索しましたが、決定的なコンテンツが見つかりませんでした。 zshのaliasコマンドとbashのaliasコマンドの間に違いはありますか?それ以外の場合は、2つのシェル間でエイリアスセットを共有し、期待どおりに機能できることを意味しますか?

答え1

このコマンドの構文は、aliasすべてのBourneスタイルのシェルで同じです。したがって、すべてのシェルで意味がある限り、、、、の~/.zshrc~/.bashrc~/.kshrc共有できます。~/.shrc

すべてのシェルでサポートされている構文サブセットを使用する限り、変数定義と関数定義にも同様に適用されます。

4.0 より前のバージョンの zsh を使用していない場合は、すべてのシェル独立定義を (たとえば) というファイルに入れることができます。~/.common.rc.shここで、最初の行は次のようになります。

emulate -LR sh 2>/dev/null

これは、zshにこのファイルでのみsh互換の構文を期待するように指示します。次に、背面の先頭の近くにファイルをインポートします~/.bashrc~/.bashrc~/.kshrc

それが基本的に私がすることです。たとえば、利用可能なオプション(、、など)lsに基づいてお気に入りのオプションのエイリアスを生成する複雑なコードがあります。したがって。--color-G-F.common.rc.shalias zcp='zmv -C'.zshrc

答え2

~によるとZshスタジオエイリアス彼らは同じ構文を持っているようですので、うまくいきます。

答え3

zshs はaliasグローバルエイリアシングを許可し、bashs は行の先頭でのみ拡張されます。

存在するzsh

alias -g L="| less -FRX"

これにより、次のことができます。

verbose-command L

バラよりここ便利なグローバルエイリアスリストを取得します。

関連情報