创建在cd进入特定文件夹时激活的别名(或类似的东西)



当我进入某个文件夹时,是否可以创建别名?

我想要的:

我经常使用composer(一个PHP包管理器),它在./vendor/bin中安装二进制文件。我想直接从.运行二进制文件。

例如:

/path/to/project
 | - composer.json     // dictates dependencies for the project
 | - vendor            // libs folder for composer, is created by composer
 |    | - bin          // if lib has bin, composer creates this folder
 |    |    | phpunit   // binary
 |    |    | phinx     // binary
 |    | - somelib1     // downloaded by composer
 |    | - somelib2     // downloaded by composer

是否有可能让这个工作:

> cd /path/to/project
> phpunit

phpunit执行?

类似于"感应"composer.json文件,动态地找到./vendor/bin中的二进制文件,然后自动做alias="./vendor/bin/<binary-name> $@"之类的事情?

,

我使用OS X 10.9和box in Terminal app。

您可以覆盖cd, trap my_function DEBUG以在每个命令上运行某些内容,或者在PS1PROMPT_COMMAND中添加命令。

它们有不同的行为和警告,我不建议在这个用例中使用它们中的任何一个(在某个时候使用了它们中的每一个之后)。它们是X-Y问题的糟糕解决方案。

另一个不太可能破坏事情的选择是创建一个自定义函数来完成这两件事:

cdp() {
    cd "$@" && phpunit
}

相关内容

  • 没有找到相关文章

最新更新