Я написал сценарий, который должен запускать некоторые команды, перезагружать мой сервер ubuntu, а затем после загрузки сервера возобновлять работу и удалять запись из файла bash.
У меня есть часами пытался понять, почему мой скрипт не пишет в .bashr c (или в любой другой файл). Тестирование команд по отдельности работает нормально. Однако при запуске моего сценария в файл ничего не записывается. На данный момент я в тупике и очень хотел бы, чтобы мне помогли бесплатные глаза, потому что я уверен, что причина в глупости и, вероятно, что-то мне не хватает. Это был бы мой первый сценарий, извините, если это окажется глупым вопросом. Я помещаю команду sudo reboot в комментарий, чтобы мне не приходилось каждый раз перезагружаться.
Имя сценария test. sh и запускается из ~ /. Надеюсь, это понятно, и я ничего не пропустил.
#!/bin/bash
echo "Script initiating"
#condition for script to run after reboot, created later on
if [ ! -f /var/run/bootflag ]; then
echo "First run"
script="bash ~/test.sh"
#this will add the script in the bash file so it will be ran on next boot
echo "$script" >> ~/.bashrc
echo "bash entry added"
#creating flag file to check if this is a second run
sudo touch /var/run/bootflag
echo "Flag created"
echo "Rebooting..."
#sudo reboot
else
echo "resuming script..."
echo "cleaning up..."
#remove the bash entry by replacing it with a space
sed -i '/bash/d' ~/.bashrc
echo "bash entry removed"
#remove the boot flag
sudo rm -f /var/run/bootflag
echo "bootflag removed"
echo "running commands post-reboot"
#commands here
echo "script exiting"
fi