就像一个本地.bashrc
文件,source
每次进入目录都是d。如何使这项工作?
问问题
268 次
2 回答
8
您可以使用别名:
$ echo 'echo "execute something for $PWD"' > tests/.cdrc
$ _cd()
{
\cd $1
[ -r .cdrc ] && . .cdrc
}
此函数首先更改为参数指定的目录,检查文件.cdrc
是否可读并获取它。
$ alias cd=_cd
然后
$ cd tests
execute something for /path/to/tests
于 2013-06-15T02:56:16.283 回答
3
bash
并且zsh
(可能还有许多其他 shell)具有允许您在显示提示之前运行任意命令的功能。您可以使用它来获取.dirrc
文件,并且不会中断制表符完成。
以下是如何做到这一点bash
:
PROMPT_COMMAND='
if [ "${PREV}" != "$(pwd -P)" ]; then
if [ -r .dirrc ]; then
. ./.dirrc
fi
PREV=$(pwd -P)
fi
'
从bash
手册页:
PROMPT_COMMAND
:如果设置,则在发出每个主要提示之前将该值作为命令执行。
这是如何做到的zsh
(参见zshmisc
手册页):
precmd() {
if [ "${PREV}" != "$(pwd -P)" ]; then
if [ -r .dirrc ]; then
. ./.dirrc
fi
PREV=$(pwd -P)
fi
}
于 2013-06-15T04:58:26.917 回答