#!/bin/bash ####################################################################################################################### # Это заготовка для bash скриптов с конфигурационным файлом. # Имя вашего скрипта напишите в переменную true_script_name на 20 строке # Перечислите ваши параметры с 33 строки и в конце файла с 81 строки # Основной скрипт необходимо написать в теле скрипта # # Ничего изменять в этом файле не надо (если конечно вы не отдаете отчет своим действиям) # Параметры подключения и прочие конфигурации прописываются в конфигурационном файле. # Если конфигурационного файла нет, то при запуске будет создан шаблон конфигурационного файла # # Автор: SvC # Версия: 2.0.3.6 от 11.01.2021 # ####################################################################################################################### IFS_old=$IFS IFS="" # я не знаю что это за магический костыль, но благодаря ему перестали съедаться переносы строк true_script_name='script_template' script_name=`basename $0` settings_path=`dirname $0` settings_name=$script_name.conf settings_fullname=$settings_path/$settings_name script_fullname=$settings_path/$script_name # проверка на наличие файла конфигурации if [ -e $settings_fullname ]; then settings_out=`/bin/cat $settings_fullname` check_update=`echo $settings_out | grep -P 'check_update' | cut -d '#' -f 1 | cut -d '=' -f 2 | awk '{$1=$1;print}'` script_token=`echo $settings_out | grep -P 'script_token' | cut -d '#' -f 1 | cut -d '=' -f 2 | awk '{$1=$1;print}'` param1=`echo $settings_out | grep -P 'param1' | cut -d '#' -f 1 | cut -d '=' -f 2 | awk '{$1=$1;print}'` param2=`echo $settings_out | grep -P 'param2' | cut -d '#' -f 1 | cut -d '=' -f 2 | awk '{$1=$1;print}'` param3=`echo $settings_out | grep -P 'param3' | cut -d '#' -f 1 | cut -d '=' -f 2 | awk '{$1=$1;print}'` param4=`echo $settings_out | grep -P 'param4' | cut -d '#' -f 1 | cut -d '=' -f 2 | awk '{$1=$1;print}'` param5=`echo $settings_out | grep -P 'param5' | cut -d '#' -f 1 | cut -d '=' -f 2 | awk '{$1=$1;print}'` param6=`echo $settings_out | grep -P 'param6' | cut -d '#' -f 1 | cut -d '=' -f 2 | awk '{$1=$1;print}'` # проверка обновлений if [ "$check_update" == "true" ]; then current_ver=`cat $script_fullname | grep -P '# Версия:' | head -1 | awk '{print $3}'` update_url="ss.svcserv.ru/update.php?script_name=$true_script_name¤t_ver=$current_ver&script_token=$script_token" update_ver=`/bin/curl -sL $update_url` if ((`echo $update_ver | cut -d '.' -f 4` > `echo $current_ver | cut -d '.' -f 4`)); then echo -e "\e[01;33mДоступно обновление ($current_ver -> $update_ver)\e[0m" echo 'Чтобы скачать напишите:' echo '' if [ "$script_name" == "$true_script_name" ]; then echo -e " rm $true_script_name && wget http://ss.svcserv.ru/$true_script_name && chmod ugo+x $true_script_name\e[0m" else echo -e " rm $script_name && wget http://ss.svcserv.ru/$true_script_name && chmod ugo+x $true_script_name && mv $true_script_name $script_name\e[0m" fi echo '' fi fi ####################################################################################################################### # тело скрипта # конец тела скрипта ####################################################################################################################### # если конфигурационного файла нет else script_token=`< /dev/urandom tr -dc A-Za-z0-9 | head -c32` echo "" echo "Файл $settings_name отсутствует" echo "Cоздан шаблон файла, заполните его и запустите команду заново" echo "# это файл настроек для скрипта $settings_name # скрипт и файл настроек должны иметь одинаковое имя, если вы переименовываете скрипт, то файл настроек должен быть так же переименован check_update=true # проверять ли обновления скрипта script_token=$script_token # токен позволяющий однозначно идентифицировать скрипт param1=value1 # параметр param1 со значением value1 param2=value2 # параметр param2 со значением value2 param3=value3 # параметр param3 со значением value3 param4=value4 # параметр param4 со значением value4 param5=value5 # параметр param5 со значением value5 param6=value6 # параметр param6 со значением value6 " > $settings_fullname fi