O arquivo que você está verificando antes de chamar a função after_reboot () é: /usr/bin/databases/afterreboot.txt
No entanto, o arquivo em que você está ecoando 1 (se o arquivo acima não existir) é: /usr/bin/afterreboot.txt
Parece que você está criando um arquivo (em / usr / bin) e verificando outro (em / usr / bin / databases).
O seguinte pode funcionar:
#! /bin/sh
after_reboot()
{
versionNumber=$(< /usr/bin/databases/afterreboot.txt);
#This following command never executes and theres no error output
sudo /usr/bin/databases/checkversion.sh $versionNumber /usr/bin/databases/my.db.sqlite 2> didntwork.txt
((versionNumber++));
echo $versionNumber>/usr/bin/databases/afterreboot.txt;
}
if [ -f /usr/bin/databases/afterreboot.txt ]; then
sleep 20
after_reboot
checkVersion=$(< /usr/bin/databases/afterreboot.txt)
if(($checkVersion < 2)); then
sudo reboot
fi
echo "DONE"
else
echo "1">/usr/bin/databases/afterreboot.txt;
echo "worked"
sudo reboot
fi