回答:
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.sh
。以下のように私はまた、シェル依存の別名を持つalias zcp='zmv -C'
ことがで行きます.zshrc
。
/bin/sh
aliasesファイルの先頭にシバンを配置すると、すべてのシェルで意図したとおりに機能しますか?
#!
行を入れないでください。これはスタンドアロンスクリプトではなく、別のスクリプトでのみソースを取得できます。#!
とにかく、シェルの動作を変更しません。
alias
最初の引数を+
オプションのようなものとして扱うため、zshのように記述-
するalias +=something
必要があることですalias -- +=something
。emulate
それを変えるとは思わないでください。
~/.shrc
Bourne Shellは最も強力なエイリアス実装を持っていzsh
ますが、互換性のないオプション名を使用しているので注意してください。Bourne Shell alias -g
で永続的なエイリアスを作成します$HOME/.globals
。エイリアス定義の共有は、POSIX機能のみを使用する場合にのみ安全です。
zsh
さんはalias
一方で、グローバルエイリアスを可能にするbash
のが唯一の行の先頭に展開されます。
でzsh
:
alias -g L="| less -FRX"
その後、次のことができます。
verbose-command L
役立つグローバルエイリアスのリストについては、こちらをご覧ください。