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

时间:2014-05-19 14:32:06

标签: bash shell composer-php

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

我想要的是什么:

我经常使用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和终端应用程序中的框。

1 个答案:

答案 0 :(得分:1)

您可以override cdtrap my_function DEBUG在每个命令上运行某些内容,或在PS1PROMPT_COMMAND中添加命令。

这些有不同的行为和警告,我不建议为这个用例做任何一个(在某些时候使用它们之后)。它们是X-Y problems的错误解决方案。

另一种不太可能破坏事情的方法是创建一个自定义函数来做这两件事:

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