Версия Ubuntu: Ubuntu 20.04.2.0 LTS
Оболочка: баш
У меня есть сценарий оболочки, который будет выполняться корень из задания cron root.
Но даже когда я запускаю скрипт вручную, он выдает ошибку, говоря следующее
# ./fix_wifi.sh
./fix_wifi.sh: строка 17: : команда не найдена
./fix_wifi.sh: строка 18: : команда не найдена
Строки 17 и 18 содержат эхо
и служба перезапуска сетевого менеджера
Предоставление абсолютных путей (/usr/bin, /usr/sbin) для этих двоичных файлов в сценарии не помогло.
Итак, я хотел бы указать файлы запуска в начале скрипта, чтобы скрипт знал о переменной PATH (и других соответствующих переменных)
Но для пользователя root в Ubuntu, какой файл запуска мне следует использовать? Я вижу .bashrc
и .профиль
файлы в домашнем каталоге root /корень
.
#!/бин/баш
# Автор xyz
# Должен запускаться как root
если [[ $EUID -ne 0 ]]; тогда
 echo "Этот скрипт должен быть запущен от имени root"
  выход 1
фи
ConnectionStatus=$(сетевое подключение nmcli)
#echo "$ConnectionStatus"
если [ "$ConnectionStatus" != "полный" ]
тогда
  /usr/bin/echo "Обнаружено, что Wi-Fi отключен в "`дату`", поэтому перезапускается диспетчер сети..." | /usr/bin/tee -a /home/john/scripts/wifi_diagnostics.log
/usr/sbin/service перезапуск сетевого менеджера
фи
Примечание:
Я забыл указать абсолютный путь для датировать
в строке 17. Но это не очень важно здесь, так как строка 18, содержащая служба перезапуска сетевого менеджера
все еще ошибка, несмотря на указанный полный путь (/usr/sbin)