direnv
当我切换到特定目录时,我想使用它来自动定义一个 bash 函数。这是函数定义。
seqchart () {
# Create a sequence diagram creation shorthand
f=$1
target_f=${f%.*}.svg
if [ -f "$f" ]; then
diagrams sequence $f ${target_f}
open -a firefox ${target_f}
else
echo "$0: No file specified"
fi
}
我把上面的代码放在.envrc
.
当我cd
到文件夹时,我可以看到
$ cd sequence_diagrams/
direnv: loading .envrc
但是没有创建 bash 函数。
我怎样才能做到这一点,同时保持一切都在一个单一的.envrc
?
从常见问题解答中,强调我的:
导出函数 using
export -f seqchart
也可能不起作用,因为我认为 bash 没有提供一种设置与导出函数 (BASH_FUNC_foo%%
) 形式相同的环境变量的方法,即使这样做了,我认为它只会在启动时读取这些变量。