Похоже, вы хотите получать .myapprc
всякий раз, когда вы меняете каталог.
Есть два пути, которые вы могли бы использовать - PROMPT_COMMAND
и ловушка DEBUG
.
Чтобы сделать это с первым, вам нужно один раз выполнить следующее:
PROMPT_COMMAND="[ -f .myapprc ] && . .myapprc"
и со вторым:
trap "[ -f .myapprc ] && . .myapprc" DEBUG
Они будут источником файла один раз для каждого запроса, поэтому, если поиск этого файла стоит дорого, вы можете расширить его, чтобы проверить, изменился ли $PWD
.
Вы также можете переопределить cd
, но это может нарушить некоторые сценарии оболочки:
alias cd=cd_
function cd_
{
\cd "$@"
local ret=$?
[ -f .myapprc ] && . .myapprc
return $ret
}
Но делать что-либо из этого на самом деле не очень хорошая идея - эй, вы все огромные дыры в безопасности, так как в конечном итоге вы будете выполнять любые команды в .myapprc
в любом текущем рабочем каталоге. .
Позднее редактирование для Joachim - используйте это с решениями PROMPT_COMMAND
/ trap
, чтобы избежать чрезмерного выполнения .myapprc с помощью следующего:
PROMPT_COMMAND='if [ -f .myapprc -a "$PWD" != "$PWDLAST" ]; then PWDLAST="$PWD"; source .myapprc; fi'