Igo*_*tis 21 bash scope environment-variables working-directory
我有一套工具,我需要根据我正在进行的项目传递参数.我希望能够根据当前目录自动设置几个环境变量.因此,当我在目录之间切换时,我常用的env vars也会改变.例:
让我们当前的目录是foo,因此,如果我这样做:
~/foo$ ./myscript --var1=$VAR1
Run Code Online (Sandbox Code Playgroud)
VAR1会有一些基于foo的值.
然后,假设我切换到了bar目录.如果我做:
~/bar$ ./myscript --var1=$VAR1
Run Code Online (Sandbox Code Playgroud)
VAR1现在应该有一些基于条形的值.
那可能吗?怎么样?
我写了另一个这个实现,有点类似于ondir.当我开始研究时,我实际上并不知道ondir.但是,有一些关键的差异可能会有用.
smartcd完全用shell编写,并且与bash和zsh完全兼容,甚至更深奥的选项
smartcd将脚本一直向下运行,然后将目录层次结构向下运行到它们的共同祖先,而不仅仅是您要进入和离开的两个目录.这意味着你可以有一个〜/ foo脚本,无论你是"cd~/foo"还是"cd~/foo/bar"都会执行
它具有"变量存储",这是一种处理环境变量的更自动的方式,而ondir要求你明确地和手动地删除和/或重置你的变量
smartcd可以通过挂钩你的提示命令打开"autocd"(bash中的PROMPT_COMMAND,zsh中的precmd)
您可以在https://github.com/cxreg/smartcd找到smartcd