Псевдоним выполняется рекурсивно на 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)
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)"
Это была проблема с GNU screen
сессия. Создание нового screen
Окно псевдоним работает как положено.