Неожиданное расширение глобального псевдонима zsh

РЕДАКТИРОВАТЬ: Пример работает в чистом Zsh. Моя установка с презто не будет работать. Похоже на ошибку в презто.

Я пытался псевдоним sponge как SP в зш. Но результат довольно удивительный.

Без глобального псевдонима:

❯ echo xxx >! xxx
❯ cat xxx | sponge xxx
❯ cat xxx  # non-empty file
xxx

С глобальным псевдонимом:

❯ echo xxx >! xxx
❯ alias -g SP='| sponge '
❯ cat xxx SP xxx
❯ cat xxx
(empty file, no lines are shown here)

В чем причина странного поведения? Как я могу заставить это работать?

1 ответ

Вы заменяете то, что должно быть каналом с аргументом

cat xxx SP xxx

означает, что у кота теперь есть 3 аргумента

alias -g SP='sponge'

а также

cat xxx | SP

Должен дать вам желаемые результаты

Другие вопросы по тегам