长期潜伏者第一次海报。
我到处找过了,肯定很容易找到,但我找不到合适的词。
我在一本教科书上做一些编码练习,我所有的工作都放在以下层次结构的目录中:

        r00t
       /    \
  tools      code
                 \
                  chapts

在tools目录中有几个脚本可以让我的生活更轻松。我想要的,以及我发帖的原因是,只要我在r00t中,我就可以在任何地方调用r00t/tools中的脚本,我知道我可以将它们添加到全局路径中,但这看起来很懒,我不想我的路径再膨胀(这是否合理?)是的。
所以,我可以在dir的“本地路径”中添加脚本或程序吗?

最佳答案

查看here以查看ondirlink)程序,该程序允许您在进入或离开目录时执行脚本。
这样你就可以动态地改变你的路径变量。不过,我必须承认,我从未使用过该程序,也没有被告知其发展状况。
或者,您可以用脚本替换cd命令来检查pwd而不是r00t目录,并根据结果更新$PATH。当然,你的cd速度会减慢,但可能甚至不会明显。
例如:

#!/bin/bash

#alternative cd

cd $*

#check for r00t directory
if [ "$( pwd | grep -o 'r00t')" == "r00t" ] ; then
  #check path variable:
  if [ "$(echo $PATH | grep -o 'r00t')" != "r00t" ] ; then
        export PATH=$PATH:/DIR/r00t/bin
  fi
else
  #remove r00t from PATH when not in r00t
  if [ "$(echo $PATH | grep -o 'r00t')" == "r00t" ] ; then
        export PATH=$( echo $PATH | sed 's~:/DIR/r00t/bin~~' )
  fi
fi

请注意,现在您必须按如下方式介绍alias
alias cd='. ./path/to/script/alternative_cd.sh'

由于导出的路径需要源代码才能用于当前shell(如果使用bash alternative_cd.sh,则只能获取运行脚本的子shell的新路径)
我测试了一下,它似乎在工作。玩得高兴。

关于linux - 在Linux中的“本地”工具链上,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31468283/

10-11 08:45