フォルダを入力すると、非常にカスタマイズされたbashエイリアスとキーバインドが必要になる場合があります(CLIから多くのコマンドを入力するために使用されるプロジェクトの場合もあります)。
「projectAlpha /」のようなフォルダに入ると、次のようなカスタムエイリアスが必要になると想定します。
alias doTaskX='./app arg1 arg2...|filter arg1 arg2...'
それ以上に私は考えていました:
しかし、プロジェクトのルートを離れるとすぐに、これらの設定は使用できなくなります。
今日それを行うための最良のアプローチは何ですか?
Bashには特別な変数Prompt_COMMAND
毎回実行されるコンテンツafterコマンドが実行されるので、次のように設定できます。
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リダイレクトは、この場合のアラートで役に立たないものを防ぐためにのみ存在することに注意してください。