
В руководстве по bash говорится, что для псевдонима:
Нет механизма использования аргументов в тексте замены, как в csh. Если аргументы необходимы, следует использовать функцию оболочки (см. Раздел 3.3 [Функции оболочки], стр. 17).
Что означают эти два предложения?
«использование аргументов в замещающем тексте», похоже, не означает следующее, что успешно
$ alias foo="echo bac"
$ foo
bac
$ foo hello
bac hello
решение1
Я полагаю, что формулировка не идеальна, если только вы не примете ееоченьбуквально. Bash не заменяет никакихпсевдонимтекст с аргументами; он будетдобавитьаргументы к тексту, как вы видели. Это в противовесCSH псевдонимыкоторый расширяет аргументывнутризаменяющий текст.
Второе предложение, IMHO, вытекает из вышеуказанного ограничения и поощряет более гибкие определения функций вместо упрощенных псевдонимов.