zz 30.10.2010 15:21
Tips & tricks — Использование функций() bash
Для упрощения работы, bash позволяет добавлять функции в .bash_profile (или .bashrc), которые будут доступны для использования наравне с прочими командами.На примере я покажу, как это работает.
Я добавлю в .bash_profile функцию для быстрого запуска файлов-заметок vimoutliner. Вкратце, vimoutliner - это набор плагинов и подсветка синтаксиса файлов с расширением .otl для vim, которые позволяют вести древовидные заметки.
Вот код функции в .bash_profile:
$ cat .bash_profile
В результате, вместо того, что бы запускать команду
1 |
|
достаточно выполнить
1 |
|
При этом предполагается, что все файлы с заметками будут хранится в одной директории и, если вы забыли имя нужного файла, можно его посмотреть, запустив функцию с параметром "-l".
Следует учитывать, что данная функция будет подгружаться к каждой копии bash и это может повлечь за собой дополнительные расходы памяти (незначительные), так что, для избежания этого, лучше реализовать вышеописанный метод не в виде bash-функции, а bash-скриптом. Так же следует помнить, что после добавления функций в .bash_profile они будут доступны только для новых копий bash (т.е. в том же терминале, в котором редактировался .bash_profile функции работать не будут, но в новосозданном терминале - да). Напоследок добавлю, что автодополнение ввода работает для bash-функций так же, как и для обычных команд.
Ну и итогом нашей лабораторной работы)) можно считать то, что мы научились использовать bash-функции, которые можно считать неким аналогом bash-alias'ов, но которые позволяют выполнять сразу несколько команд и обладают всеми возможностями bash-скриптов, тем самым упрощая себе работу в терминале.
P.S. Это моя первая публикация на данном ресурсе, критику выслушаю и, если требуется, внесу в текст правки, но сильно ногами не пинайте, пожалуйста)) Так же мне показалось, что тематика заметки подходит для блога "Tips & tricks", но у меня нет возможности опубликовать что-то в нём, поэтому пишу в персональном.
Да кстати, вместо $username достаточно вписать $USER. Это переменная окружения, куда прописывается имя текущего пользователя.
так может тогда уже сразу завместо /home/$USER/ писать просто ~ или $HOME?
Чтоб иметь возможность что-то писать в блог - нужно зайти в него (например зайти в http://welinux.ru/blog/38/), и нажать кнопку "Вступить".