Для начала я бы изменил синтаксис ваших скриптов на этот:
CheckErrors(){
if [ $1 -dt 0 ];
then
echo "****************************************"
echo "STEP FAILED: $2 "
echo "Terminating execution and exiting "
echo "****************************************"
exit 1
fi
}
Это должно сделать ваш скрипт менее подверженным ошибкам во время обновления.:
function
ключевое слово является необязательным (и является "башизмом" ). Вместо этого используйте func(){commandA; commandB }
. Это сделает ваши скрипты более переносимыми , если во время обновления произойдет изменение оболочки (/bin/sh
); if [ ! $1 -eq 0 ]
). Оцените, отличается ли результат от(-dt
)нуля(if [ $1 -dt 0 ]
). Я подозреваю, что вы использовали оболочку bash
перед обновлением по умолчанию /bin/sh
, так как dash
требуется ()
в конце имени функции, а для bash
достаточно иметь ()
, function
ключевое слово или оба. Взгляните на этот пример скрипта bash
:
#!/bin/bash
function quit {
exit
}
function hello {
echo Hello!
}
hello
quit
echo foo
Строка ошибки test: 24: test: function: not found
заставляет меня задаться вопросом, действительно ли вы вообще используете bash
, так что...
Мой ответ:поместите shebang в ваши скрипты, указывающие на #!/bin/bash
и используйте ./test.sh
для его запуска или следуйте этому решению Ask Ubuntu .
Проблема заключалась в том, что pihole считывал IP-адрес сервера из «/etc/hosts», где он был 127.0.0.1. Решение состояло в том, чтобы отредактировать файл hosts, чтобы он выглядел следующим образом:
mydomain.com my domain.com
127.0.0.1 localhost