Eu tenho um script que deve manter uma função quando um nome de arquivo é alterado - o problema que estou tendo é que, após a primeira execução, o loop while não continua a ser executado. O script não sai parece apenas travar. Alguém tem alguma ideia?
#!/bin/bash
#*******
#10.0.4.****
set -x
#trap read debug
end=432000
state='unknown'
cachereset() {
rm ~/state/*.txt
cp /media/state/*.txt ~/state/
echo "unknown"
}
statecheck() {
if [ -f ~/state/meeting.txt ]; then
pkill google-chrome
google-chrome https://**** --incognito & #Load Chromium
sleep 30 #Wait for Chromium to load
xdotool type "****@****.co.uk"
xdotool key Tab
xdotool type "PASS!"
xdotool key Return
sleep 15
xdotool key F11
echo "meeting"
elif [ -f ~/state/normal.txt ]; then
pkill google-chrome
google-chrome https://**** --incognito & #Load Chromium
sleep 30 #Wait for Chromium to load
xdotool type "***@****.co.uk"
xdotool key Tab
xdotool type "PASS!"
xdotool key Return
sleep 15
xdotool key F11
echo "normal"
else
pkill google-chrome
google-chrome https://**** --incognito & #Load Chromium
sleep 30 #Wait for Chromium to load
xdotool type "***@*****.co.uk"
xdotool key Tab
xdotool type "PASS!"
xdotool key Return
sleep 15
xdotool key F11
echo "normal"
fi
}
state=$(cachereset)
while [ $SECONDS -lt $end ]; do
echo "frank"
if [ $state == "unknown" ]; then
state=$(statecheck)
fi
if [ $state == "meeting" ]; then
while [ -f /media/state/meeting.txt ]; do
sleep 30
done
state=$(cachereset)
fi
if [ $state == "normal" ]; then
while [ -f /media/state/normal.txt ]; do
sleep 30
done
state=$(cachereset)
fi
done
shutdown -r 1
Tags bash