имя_функции () {команда1; command2; }
Псевдонимы Lika, функции оболочки Bash могут быть определены в файле «.bashrc», но часто лучше поместить их в отдельный файл определений. Мы назовем его «.bash_functions», следуя соглашению, используемому для файла «.bash_aliases».
Это означает, что нам нужно указать файлу «.bashrc» читать наши определения. Мы можем скопировать и изменить фрагмент кода, который читается в файле «.bash_aliases». Запустите gedit и загрузите файл «.bashrc» с помощью этой команды:
gedit .bashrc
gedit .bashrc файл
Вам необходимо добавить выделенный раздел, показанный ниже.
Вы можете выделить раздел псевдонима и нажать Ctrl + C, а затем перейти туда, где вы хотите создать новый раздел, и нажать Ctrl + V, чтобы вставить копию текста. Затем все, что вам нужно сделать, это заменить два места, где написано «.bash_aliases», на «.bash_functions».
Добавление bash_functions в файл .bashrc
Мы можем сохранить эти изменения и закрыть gedit.
Теперь мы собираемся создать и отредактировать файл «.bash_functions» и поместить в него определение функции.
коснитесь .bash_functions gedit .bash_functions
Создание и редактирование .bash_functions
Это откроет пустой файл «.bash_functions» в gedit.
Мы собираемся добавить простую вызываемую функцию. up примет единственный параметр командной строки, который является цифрой. Затем up вызовет cd .. это количество раз. Итак, если вы использовали команду
вверх 2
up вызовет cd .. дважды и переместится на два уровня вверх в дереве каталогов.
Есть разные способы определения функции. Вот один:
function up () {
Слово функция не является обязательным. Если вы традиционалист, используйте его, если вас не беспокоит его ввод, оставьте его.
Вот вся наша функция в gedit:
Редактирование файла .bash_functions
function up () {
Это знаменует начало определения нашей функции и называет функцию up.
уровни = 1 $
Это создает переменную с именем уровни и устанавливает его в значение первого параметра. Этот параметр будет цифрой, предоставленной пользователем при вызове функции. $ 1 означает «первый параметр командной строки».
в то время как ['$ levels' -gt '0']; делать
Затем мы вводим цикл, который затем переводится как «когда» значение 'Из' уровни 'Положительно или больше нуля, делать то, что содержится в теле цикла'.
Внутри тела цикла у нас есть две команды. Они есть:
CD ..
Перейти на уровень вверх в дереве каталогов.
уровни = $ (($ уровни - 1))
Установите для уровней новое значение, которое на единицу меньше текущего значения.
Затем мы возвращаемся к началу цикла, сравнивая значение уровней и ноль еще раз. Если «уровни» больше нуля, тело цикла выполняется снова. Если он не положительный или больше нуля, цикл завершен, и мы переходим к оператору done, и функция завершается.
Сохранить эти изменения и закрыть gedit .
Мы прочитаем и выполним команды из «.bashrc», которые должны считывать и выполнять команды из нашего файла «.bash_functions».
. .bashrc
Звоните ..bashrc
Мы можем протестировать функцию, переместившись в какое-либо место в дереве каталогов и используя вверх, чтобы вернуться в «более высокую» точку в дереве каталогов.
cd ./work/backup/ up 2
Функционирование вверх
Функция работает. Мы перемещены на два уровня каталогов выше в дереве.
Следить за типом
По мере создания набора псевдонимов и библиотеки функций может стать трудно запомнить, является ли конкретная команда псевдонимом или функцией. Вы можете использовать « тип' команда, чтобы напомнить вам. Самое классное здесь то, что вы также можете увидеть определение.
Давайте использовать шрифт на нашем FTC псевдоним и наша функция вверх.
тип ftc тип вверх
Использование типа
Мы получаем очень полезное напоминание о типе каждой команды вместе с их определениями.
Начать собирать
Псевдонимы и функции могут значительно ускорить использование командной строки. Они могут сократить последовательность команд и позволяют запрограммировать параметры, которые вы всегда используете со стандартными командами. Каждый раз, когда вы видите изящную однострочную или полезную функцию, вы можете адаптировать и персонализировать ее, а затем добавить в свои файлы «.bash_aliases» или «.bash_functions». Их широкое использование может сделать ваше время в скорлупе более приятным и менее сложным.
Не забудьте с осторожностью переопределять существующие команды с потенциально деструктивным поведением. Даже выполнение противоположного действия и наложение команды на более безопасный вариант (например, всегда запрашивание подтверждения перед рекурсивным удалением) может снова укусить вас, когда вы впервые в системе без него, как только вы начнете полагаться на него . Чтобы найти кандидатов, для которых можно было бы создать псевдонимы, может быть хорошей идеей поискать в истории наиболее часто используемые команды.
12 минут на чтение