Я должен создать псевдоним для каждой функции удара?

Я сделал краткий курс об ударе и терминале, и одна из лучших практик, размеченных в курсе, создавала псевдоним для каждой функции, которая будет создана. Например, если у меня была функция:

function e() { echo "$*"; }

Я должен также создать, создают псевдоним:

alias e='e'

Вы думаете, что это имеет смысл и если да, каково обоснование? Я полагаю, что могу получить функции и использовать их без псевдонимов так или иначе, таким образом, это отчасти походит на ненужную работу.

5
задан 25 October 2016 в 19:18

2 ответа

Случай для псевдонимов

  • Псевдонимы могут быть довольно полезными, когда Вы хотите обратиться к долгой команде кратким названием.
  • В порядке очередности, псевдонимы стоят выше, чем функции, поэтому в случае, если, где Вы хотите переопределить некоторое существующее имя для Вашей собственной сессии , Вы использовали бы псевдоним.

Случай для функций

  • , Когда у Вас есть команда, которая требует контакт с одинарными и двойными кавычками одновременно , используйте функции. Те, кто имеет дело с sed или awk много, понимают.
  • , Когда Вы захотите обратиться к долгой задаче, состоящей из нескольких команд, взаимодействующих с переменными, используйте функцию. В целом я лично следую правилу что, если существует больше чем 3 команды, пора использовать функцию.
  • Псевдонимов можно оставить путем добавления \. Это полезно для системных администраторов. Если Вы не захотите, чтобы Ваш пользователь выполнил определенную команду, то функция будет иметь приоритет. Пример:

    $ ls
    serg says this command is a no-no
    $ \ls
    serg says this command is a no-no
    

    примечание, которое пользователь может все еще выполнить /bin/ls без проблем туда, таким образом, это не действительно хорошие меры безопасности. Я сказал бы, что лучшее использование будет как обертка для некоторой команды, где Вы хотите добавить заголовок или удалить некоторую информацию.

  • Из страницы справочника удара: There is no mechanism for using arguments in the replacement text.If arguments are needed, a shell function should be used. Таким образом, в то время как можно сделать простые приемы - что-то как alias e="echo"; e Hello - Вы хотели бы функцию, когда Вы хотите иметь дело с параметрами командной строки экстенсивно.

В моем личном опыте, я использовал функции намного больше, чем псевдонимы. Они похожи на сценарии, кроме он не необходим для создания внешних файлов - они могут все жить в моем ~/.bashrc. Заключение в кавычки и ссылка на переменные становятся меньшим количеством проблемы.

6
ответ дан 23 November 2019 в 08:46
function e() { echo "$*"; }

я должен также создать, создают псевдоним:

alias e='e'

, Который, как есть, является довольно немым. Нет никакого смысла к определению псевдонима функции и предоставления его то же имя.

я думал бы, что то, что они имели в виду, было:

  • Дают каждую функцию, Вы написали описательное имя, которое может быть долгим.
  • И делают короткий псевдоним для удобства.
6
ответ дан 23 November 2019 в 08:46

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

Похожие вопросы: