我工作的项目在存储库中有一些可执行脚本。这些脚本实际上是自动执行某些开发任务的工具,只有当我在repo中并且它们只对repo中的文件起作用时才会调用它们。我的典型工作会议看起来像这样:
$ cd $REPO
$ ./tools/start-session
$ some-script some arguments
$ other-script other arguments
换句话说,start-session
脚本只是在$PATH
变量中添加了适当的条目。
我想进一步自动化,以便我不必调用$REPO/tools/start-session
脚本。我想要实现的是让bash自动检测到我在我的repo目录中并附加到$PATH
的正确条目。关键是我有我的repo的许多工作副本,并且每个分支中的工具略有不同,我经常在工作副本之间移动,我想我的shell有点猜测我想调用哪个脚本。
我该怎么做?
我唯一能想到的是每次命令完成时都会执行$PS1
变量,所以我可以用某种方式勾选一些$PATH
- 更改脚本,即使用反引号
PS1=`update-path`$PS1
但这似乎不是正确的方法。
答案 0 :(得分:1)
在正确的轨道上,但不要使用PS1
- 您需要PROMPT_COMMAND
。例如:
PROMPT_COMMAND='ls'
每次出现新提示时,都会执行ls
。这是否能解决你根本问题我不能说,因为我不确定我是否理解它。
答案 1 :(得分:0)
我会创建一个简单的bash脚本 - 让我们称它为cs(更改会话) - 它改变目录并更新路径,所以而不是
$ cd $REPO
$ ./tools/start-session
$ some-script some arguments
$ other-script other arguments
你会做的
$ cs $REPO
$ some-script some arguments
$ other-script other arguments
这样的事情:
#!/bin/bash
cd $1
./tools/start-session