У меня есть следующий скрипт в домашнем каталоге myuser
#!/bin/bash
# startup.sh
export HOST_IP=$(/bin/ip -4 addr show enp2s0 | /bin/grep -Po 'inet \K[\d.]+')
echo "Using HOST_IP=$HOST_IP"
и следующая запись в crontab моего пользователя (не корневой crontab)
@reboot /home/myuser/startup.sh > /home/myuser/restart.log 2>&1
Если я запускаю команду сам, я вижу следующий вывод
> ./startup.sh
Using HOST_IP=192.168.1.15
Но если я перезагружаю машину, а затем проверяю restart.log
я вижу
> cat ./restart.log
Using HOST_IP=
Я использую полный путь к командам ip
и grep
, поэтому я не понимаю, почему я не получаю значение для переменной среды, когда она запускается из crontab?