别名在 OSX 上递归执行
Alias executed recursively on OSX
我正在使用 oh-my-zsh,在 .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)
这是 GNU screen
会话的问题。创建一个新的 screen
window 别名按预期工作。
这与它在 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
将 return /usr/local/bin/composer
(或类似路径),但后续使用将 return composer: aliased to ...
。这导致错误消息,即无法找到输入文件 composer:
(注意冒号)。
只定义一次别名可能在大多数情况下都有效,但为了安全起见,您可以明确告诉 which
使用参数 [=20= 查找路径(忽略内置函数、别名和函数) ]:
alias composer="php -d memory_limit=-1 $(which -p composer)"
我正在使用 oh-my-zsh,在 .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)
这是 GNU screen
会话的问题。创建一个新的 screen
window 别名按预期工作。
这与它在 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
将 return /usr/local/bin/composer
(或类似路径),但后续使用将 return composer: aliased to ...
。这导致错误消息,即无法找到输入文件 composer:
(注意冒号)。
只定义一次别名可能在大多数情况下都有效,但为了安全起见,您可以明确告诉 which
使用参数 [=20= 查找路径(忽略内置函数、别名和函数) ]:
alias composer="php -d memory_limit=-1 $(which -p composer)"