RVM中,如果在项目目录下保存一个.ruby-version
的文件,会在cd
进入该目录时候自动切换ruby
版本
如果要用一个Bash脚本来实现类似功能的话,应该怎样实现?
大概的需求是这样:
假设最终实现了功能的脚本叫
env.sh
只要我source env.sh
那么之后在命令行中使用cd
进入任何一个目录,会自动判断一个指定的文件名,比如project.settings
是否存在,如果存在,执行一些操作 比如配置环境变量啊 blablabla
使用inotify
可以使用Bash
覆盖cd
实现。
#!/bin/bash
cd() { __override_cd cd "$@" ; }
__override_cd()
{
typeset __zsh_like_cd_hook
if
builtin "$@"
then
shift || true # remove the called method
if [[ -f project.settings ]]
then
source env.sh
fi
true
else
return $?
fi
}
cd .