实现
玩android代码进入目录后总是需要source build/envsetup.sh, 比较烦, 能不能在cd进入时自动完成这个功能呢?
可以的, 首先我们在.bashrc中重新定义cd这个函数:
mycd() {
\cd $@
local hook_file=.cd_hook
if [[ -f $hook_file ]]; then
. $hook_file
fi
}
alias cd='mycd'
这样, 在进入一个目录后就会检测该目录下是否有.cd_hook文件, 如果有的话就自动source之.
然后我们在源代码目录下新建一个.cd_hook文件:
type lunch >/dev/null 2>&1 # 用检测lunch函数是否有的方式确定是不是已经source过了
if [[ $? -ne 0 ]]; then
source build/envsetup.sh
fi
这样就可以了. 不过.cd_hook是有一定安全问题的, 要小心有什么程序恶意或不小心的加入了这个文件.