時には、フォルダに入るときに非常にカスタマイズされたbashエイリアスとキーバインディングを使用するのが好きです(おそらくCLIで多くのコマンドを入力するのに慣れているプロジェクトの場合)。
「projectAlpha/」などのフォルダを入力するときに、次のカスタムエイリアスが必要であるとします。
alias doTaskX='./app arg1 arg2...|filter arg1 arg2...'
- ...
私が考えたのはそれだけではありませんでした。
- エイリアスと一般的に使用されるコマンドを示す便利なメッセージを表示します。
- 私のプロジェクトのいくつかの一般的なカスタムキーバインディングを示しています。
ただし、プロジェクトのルートを離れるとすぐに、これらの設定は使用できなくなります。
今日の最良のアプローチは何ですか?
ベストアンサー1
PROMPT_COMMAND
Bashには、毎回コンテンツが実行される特別な変数があります。後ろにコマンドが実行されるので、次のように設定できます。
PROMPT_COMMAND='[[ "$PWD" = /tmp ]] && { alias ll=ls; echo "Remember: ll=ls"; } || { unalias ll 2>/dev/null; }'
これ以降、/tmp
ディレクトリに入るたびにエイリアスが作成され、他のすべてのディレクトリから削除されます。ll
おそらくより実用的なのは、1つの関数(たとえば)からすべてのエイリアスと他の項目を収集し、必要に応じて実行できる他の関数makealias
からすべての非エイリアスを収集することです。makeunalias
PROMPT_COMMAND='[[ "$PWD" = /tmp ]] && makealias || makeunalias 2>/dev/null'
この場合、無駄な警告を防ぐためにのみstderrリダイレクトが存在します。