less
のような単純なコマンドの場合、エイリアスを作成するか、オプションをエクスポートする方が良いですか?どちらか一方の利点はありますか?
たとえば、less
で常に-R
オプションを使用して生の文字を表示したい場合、次の両方の解決策が機能します。
export LESS='-R'
alias less='less -R'
このような単純なケースの場合、一方が他方よりも優れている点はありますか?一方が問題を引き起こし、他方が問題を起こさないシナリオはありますか?
いくつかのinfo
ページとman
ページを読み、グーグルで調べましたが、それでもまだ行き詰まっています。
2つの違いの1つは、エイリアスはシェル機能にすぎないことです。環境変数は、すべてのサブプロセスによって継承されます(意図的にクリアしない限り)。
less
が別のシェル(例:tcsh
)、man
、vim
、 psql
など.
使用しているツールに大きく依存します。どちらかを使用できるツールもあれば、1つしか使用できないツールもあります。
他から呼び出されて環境変数を読み取り、同じスイッチを受け入れるコマンドがありますが、make
としてのコンパイラーのように、それぞれに同じスイッチを追加するのは面倒です。ここでは環境変数が優れています。変数を設定して、それを忘れます。また、一時的なものであり、単一のコマンドで機能することもできます。
一番下の行は、設定の優先事項であり、タスクに最適なアクションです。エイリアスの設定が環境変数よりも簡単で永続的な場合もあれば、同じように動作する一連のツールが必要な場合もあります。環境変数が大好きです。