我正在使用oh-my-zsh a。在.zshrc中有以下别名:
alias composer="php -d memory_limit=-1 $(which composer)"
我得到以下输出:
$ composer
Could not open input file: composer:
并且:
$ which composer
composer: aliased to php -d memory_limit=-1 composer: aliased to php -d memory_limit=-1 composer: aliased to php -d memory_limit=-1 /usr/local/bin/composer
$ zsh --version
zsh 5.2 (x86_64-apple-darwin15.4.0)
在Linux下,它按预期工作:
$ which composer
composer: aliased to php -d memory_limit=-1 /usr/bin/composer
$ zsh --version
zsh 5.3.1 (x86_64-unknown-linux-gnu)
答案 0 :(得分:2)
这与它在OS X或Linux上的使用或屏幕的使用无关。它看起来像你运行命令
alias composer="php -d memory_limit=-1 $(which composer)"
多次。这导致composer
的递归定义:
composer: aliased to php -d memory_limit=-1 composer: aliased to php -d memory_limit=-1 composer: aliased to php -d memory_limit=-1 /usr/local/bin/composer
添加换行符以使其显而易见:
composer: aliased to php -d memory_limit=-1 \
composer: aliased to php -d memory_limit=-1 \
composer: aliased to php -d memory_limit=-1 \
/usr/local/bin/composer
首次使用which composer
将返回/usr/local/bin/composer
(或类似路径),后续使用将返回composer: aliased to ...
。这会导致出现错误消息,指出无法找到输入文件composer:
(注意冒号)。
只定义一次别名可能在大多数情况下都有效,但为了安全起见,您可以明确告诉which
使用参数-p
查找路径(忽略内置,别名和函数):
alias composer="php -d memory_limit=-1 $(which -p composer)"
答案 1 :(得分:-1)
这是GNU screen
会话的问题。创建一个新的screen
窗口,别名按预期工作。