#linux #функции #bash
Мне приходиться работать с разными серверами на linux, подключаюсь по ssh. И часто приходиться делать разную рутинную работу через консоль. Я создал себе рабочий файл (.sh), где собрал написанные функции. Вот самый простой пример: cdl() { cd "$@" && ls -la; } и этот файл с функциями, кидаю в рабочую директорию из проекта в проект и перед подключением к проекту всегда запускаю этот файл, чтобы функции подключились. Можно ли куда-то в ядро или еще куда-то записать эти функции, чтобы не приходилось каждый раз запускать этот файл, а просто записать эти функции в какой-то файл, который будет автоматически видеть мои функции?
Ответы
Ответ 1
если речь только о программе bash и только об интерактивных сеансах, то подходящим местом для ваших собственных функций будет файл ~/.bashrc. можно либо добавить код функций непосредственно в этот файл: $ cat ~/мои.функции | ssh пользователь@машина 'cat >> ~/.bashrc' либо добавить только вызов этого файла (скопировав и сам файл): $ scp ~/мои.функции пользователь@машина: $ ssh пользователь@машина 'echo "if [ -f ~/мои.функции ]; then . ~/мои.функции; fi" >> ~/.bashrc'Ответ 2
разделить функции на файлы cdl.sh cdl() { cd "$@" && ls -la; } #запуск функции cdl и можно сделать ссылку в папку bin sudo ln -s -r cdl.sh /bin/cdl и вызывать так bash cdl или chmod -R +x cdl.sh и можно вызывать так cdl еще можете изучить такую тему как bash переменные окружения PATCH но если не хотите делить функции на файлы , добавьте "$@" myFun.sh cdl() { cd "$@" && ls -la; } cd2() { cd "$@" && ls -la; } "$@" потом sudo ln -s -r myFun.sh /bin/myFun chmod -R +x myFun.sh и вызывайте так ~$: myFun cdl ~$: myFun cd2
Комментариев нет:
Отправить комментарий