Ho bisogno di eseguire un comando quando qualcosa viene inserito in BASH con un certo intervallo di tempo, e se è non quella volta esegue un altro comando. Ecco quello che ho finora, ma non sembra funzionare ..
FLATTIME=$(date "+%H%M")
FLATTIME=${FLATTIME##0}
if ! [[ $FLATTIME -gt 1130 ]] ; then
mysql --host=192.168.0.100 --user=myself --password=mypass thedb << EOF
INSERT INTO $STAFFID values ('','$STAFFID','$THETIME','','$THEDATE','$DAYOFWEEK');
EOF
else
mysql --host=192.168.1.92 --user=myself --password=mypass thedb << EOF
UPDATE $STAFFID SET Out_Time='$THETIME' WHERE date='$THEDATE';
EOF
fi
Idealmente quello che vorrei è avere qualcosa di simile: se il tempo è 8:00-13:00 fare il primo comando, se il tempo è tra 1pm e 11pm fai il secondo comando, altrimenti echo "qualcuno è stato al lavoro troppo a lungo". Ho provato alcune varianti ma senza fortuna, sembra solo che esegua il primo comando qualunque cosa io faccia ..
Questo può essere troppo ovvio, ma hai eseguire questo script in un momento successivo rispetto 1130? O commentato il comando 'date' e un timestamp hard-coded per i test? Ho provato la tua struttura 'if-else' sulla mia macchina e ha funzionato bene. –