Я использую Fedora 25 и добавил следующий псевдоним в свой профиль bash:
alias releasenotes="dnf updateinfo --refresh info `dnf check-update | cut -d '.' -f 1 | xargs` | less"
(Я не могу использовать прямо dnf updateinfo info
из-за https://bugzilla.redhat.com/show_bug.cgi?id=1405191 )
Мой псевдоним работает, но выполнение команды занимает около 10 секунд, и поскольку bash анализирует и проверяет все псевдонимы при получении профиля, создание новой оболочки приводит к 10-секундному зависанию. Это раздражает.
Есть ли способ заставить bash не пытаться анализировать и проверять псевдонимы - или только этот?
источник
bash
интерпретирует вашу строку в кавычках, и эта интерпретация выполняет встроеннуюdnf check-update
команду. Это выполнение - то, что занимает время во время определения псевдонима, а не основнаяdnf updateinfo
команда, которую вы называете псевдонимом. Попробуйте надуманный пример на основеsleep
и обратите внимание, чтоalias
само по себе занимает 5 секунд:Используйте одинарные кавычки, чтобы избежать интерпретации:
Не забудьте поменять
cut
аргумент на двойные кавычки.источник