我试着写一击未发现句柄执行以下操作当前工作目录:如何更改内部command_not_found_handle
- 如果$ 1成立,这是一个目录,
cd
进去。 - 如果$ 1存在于用户定义的目录
$DEV_DIR
中,请将其放入CD中。 - 如果以前的条件不适用,则失败。
现在,我有这样的事情:
export DEV_DIR=/Users/federico/programacion/
function command_not_found_handle() {
if [ -d $1 ]; then # the dir exists in '.'
cd $1
else
to=$DEV_DIR$1
if [ -d $to ]; then
cd $to
echo `pwd`
else
echo "${1}: command not found"
fi
fi
}
虽然它似乎是工作(在echo pwd
命令打印预期的目录),在实际壳的目录并没有改变。
我的印象是,由于这是我的.bashrc
内的函数,shell不会分叉,我可以执行cd
,但显然这不起作用。任何提示如何解决这个将不胜感激。
为什么你需要这样做?最有可能有更好的方法来完成你想要的任何事情。 – 2011-03-20 21:31:48
我想在一个简单的方法让所有项目保存的目录下的子目录之间移动。在做'cd〜/ prog; cd某事'一段时间后有点累。我很想听听任何其他建议。 – 2011-03-21 21:21:06