Я хочу знать разницу между псевдонимами и функциями в оболочке bash - и когда использовать какой.
Кажется очевидным, что, поскольку функции могут принимать аргументы, они намного мощнее - поскольку я работаю в основном с нетбуком в дороге и хочу экономить энергию и вычислительную мощность, мне особенно хотелось бы узнать немного больше о том, что отличает производительность из этого два способа расширить функциональность bash:
Ответы:
Думайте об псевдонимах как псевдонимах. У вас может быть команда, которую вы много выполняете, но хотите сократить.
Например, вы часто хотите перейти прямо на рабочий стол в командной строке, так что вы можете сделать это
С этого момента вы просто введите
в терминале, и он выполнит
cd ~/Desktop
для вас.Функции содержат логику. В функции вы можете звонить в несколько разных программ. Вот простая функция эха
Хотя он может выглядеть как псевдоним, когда вы его называете
Ваш e () может иметь много разных вещей. Выше приведен упрощенный пример.
Псевдонимы должны быть зарезервированы для простых случаев использования. Личный пример - я заменил мою
rm
команду, как этоВсякий раз, когда я делаю rm, он отправляет его в корзину, а не удаляет с диска. Это удовлетворяет мою неуклюжесть в терминале, где я могу (иногда) случайно удалить важный файл.
Функции , которые вы должны помнить, являются кусочками логики. Вы не будете использовать функцию автономно, как правило. Это было бы частью большего сценария. Представьте себе скрипт, который берет все ваши файлы и переименовывает их в свои латинские версии. Не обращайте внимания, что есть разные способы сделать это.
Но то, что вы могли бы сделать, это перебрать все файлы в каталоге и передать путь к файлу вашей функции RenameAsPigLatin. Функция RenameAsPigLatin может иметь дополнительную логику, включающую числа, где вы решаете, что файлы, заканчивающиеся числами, не должны быть переименованы.
Сразу же вы можете увидеть выгоду от его использования в качестве функции. Функция может фокусироваться на переименовании по вашим странным правилам, в то время как остальная часть скрипта может проходить по различным каталогам по мере необходимости.
источник
Псевдоним - это простой ярлык, используемый в консоли, чтобы избежать ввода длинных команд или всегда повторять одни и те же параметры.
Классическим примером будет:
Псевдоним работает только в интерактивной консоли, он не предназначен для использования в скриптах.
Функция может использоваться в скриптах или в консоли, но чаще используется в скриптах.
В отличие от псевдонимов, которые просто заменяются на их значение, функция будет интерпретироваться оболочкой bash.
Функции гораздо более мощные, чем псевдонимы, их можно использовать для создания очень сложных программ.
источник