PlayBoyXXX
@PlayBoyXXX
Школьник

Как запустить функцию в bash из командной строки?

В скрипте имеется функция:
Autobak(){
	zip -r openvpn.zip /etc/openvpn
	backupURL="$(curl -F "file=@/root/openvpn.zip" https://file.io | jq '.link')"
	curl -s -X POST https://api.telegram.org/bot"$bot_api"/sendMessage -d chat_id="$tgid" -d text="Бэкап сервера OpenVPN $backup_serv_id  Дата: $(date) Ссылка на бэкап: $backupURL"
	rm /root/openvpn.zip
}

Как сделать так, чтобы можно было запускать ее непосредственно из командной строки?
Заранее большое спасибо.
  • Вопрос задан
  • 154 просмотра
Решения вопроса 1
ky0
@ky0
Миллиардер, филантроп, патологический лгун
Привязать эту функцию к какому-либо аргументу и поиспользовать case.

Autobak()
...
case "$1" in
    "foo")
    Autobak
;;
esac


и потом ./script.sh foo.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
@pfg21
ex-турист
1. оформи эту функцию отдельным баш-скриптом, с именем этой функции.

2. в теле главной функции скрипта сделай опцию запуска конкретно этой функции.
Ответ написан
saboteur_kiev
@saboteur_kiev Куратор тега Linux
software engineer
1. Просто выполнить функцию в командной строке.

2. Добавить ее в .bashrc или в .profile, чтобы она загружалась при логине

3. Выполнить ваш скрипт с функцией в текущей оболочке, она будет доступна после этого (
$ source script_with_function.sh
$ Autobak
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы