By akarnya
I have a text file as follows:
a.txt
——
STEPS=3
STEP_DURATION=100
INTERVAL=60
I want to use these values in a shell script.
How to go about this?
By akarnya
I have a text file as follows:
a.txt
——
STEPS=3
STEP_DURATION=100
INTERVAL=60
I want to use these values in a shell script.
How to go about this?
By davidm123SED
First thing first, this script is pig-ugly with all of the echos in there, so I need to tidy that up, but more important is the fact that the second part – from where I’ve inserted ## second part — just constantly returns the same order code.
Oh, and it loops.
What a mess.
Can someone help me ?
Thanks.
#!/bin/sh
## get date
today=`date +”%d-%m-%Y-%H-%S”`
if [ -f /root/extrac.txt ]; then
/bin/rm /root/extrac.txt
fi
#### check orders
orderStatus=$(/usr/bin/mysql -N -B mybase -e ‘SELECT COUNT(*) FROM orders as o JOIN users as u ON o.userpk=u.pk WHERE o.createdts BETWEEN (now() – INTERVAL 1 day) AND (now() – INTERVAL 4 hour) AND o.p_omsstate=1 AND u.name != “wotsit” AND u.p_username NOT LIKE “e-mail_address@domain.co.uk”;’)
/bin/echo “” > /root/extrac.txt
/bin/echo “The date is $today” >> /root/extrac.txt
/bin/echo “” >> /root/extrac.txt
/bin/echo “” >> /root/extrac.txt
/bin/echo “We have verified the number of orders still in ‘state’ state” >> /root/extrac.txt
/bin/echo “after four hours.” >> /root/extrac.txt
/bin/echo “” >> /root/extrac.txt
if [ $orderStatus != “0” ]; then
/bin/echo “” >> /root/extrac.txt
/bin/echo “” >> /root/extrac.txt
/bin/echo “The number of orders in this state is not zero.” >> /root/extrac.txt
/bin/echo “” >> /root/extrac.txt
/bin/echo “As such, the web order numbers are echoed below : ” >> /root/extrac.txt
/bin/echo “” >> /root/extrac.txt
## second part
orderStatus=$(/usr/bin/mysql -N -B mybase -e ‘SELECT Code FROM orders as o JOIN users as u ON o.userpk=u.pk WHERE o.createdts BETWEEN (now() – INTERVAL 1 day) AND (now() – INTERVAL 4 hour) AND o.p_omsstate=1 AND u.name != “wotsit” AND u.p_username NOT LIKE “e-mail_address@domain.co.uk”;’)
while [ $result ]
do
/bin/echo “” >> /root/extrac.txt
/bin/echo “” >> /root/extrac.txt
/bin/echo “$result” >> /root/extrac.txt
/bin/echo “” >> /root/extrac.txt
/bin/echo “” >> /root/extrac.txt
done
exit 0
fi
/bin/echo “” >> /root/extrac.txt
/bin/echo “” >> /root/extrac.txt
/bin/echo “The number of orders is zero, and as such, no web order numbers are available” >> /root/extrac.txt
/bin/echo “” >> /root/extrac.txt
/bin/echo “” >> /root/extrac.txt
/bin/echo “Any questions, please e-mail me@myaddress.com” >> /root/extrac.txt
/bin/echo “” >> /root/extrac.txt
/bin/echo “————————————————————-” >> /root/extrac.txt
/bin/echo “” >> /root/extrac.txt
By davidm123SED
When, however, I try to get it to assign its output to a variable, using the backtick, I get errors.
So ..
/usr/bin/mysql -N -B mydatabase -e 'SELECT COUNT(*)
FROM orders as o JOIN users as u ON o.userthing=u.package
WHERE o.table BETWEEN (now() - INTERVAL 1 day) AND
now() - INTERVAL 25 hour) AND o.p_stateorder=1 AND
u.name != "The Site" AND u.p_username NOT LIKE "myAddress@mailserver.com";'
.. no problem.
When, however …
result=`/usr/bin/mysql -N -B mydatabase -e 'SELECT COUNT(*)
FROM orders as o JOIN users as u ON o.userthing=u.package
WHERE o.table BETWEEN (now() - INTERVAL 1 day) AND
now() - INTERVAL 25 hour) AND o.p_stateorder=1 AND
u.name != "The Site" AND u.p_username NOT LIKE "myAddress@mailserver.com";'`
.. errors.
So I’m guessing that something in there needs to be escaped, but I can’t say what.
Can someone help?
Thanks.
By davidm123SED
When, however, I try to get it to assign its output to a variable, using the backtick, I get errors.
So ..
/usr/bin/mysql -N -B mydatabase -e 'SELECT COUNT(*)
FROM orders as o JOIN users as u ON o.userthing=u.package
WHERE o.table BETWEEN (now() - INTERVAL 1 day) AND
now() - INTERVAL 25 hour) AND o.p_stateorder=1 AND
u.name != "The Site" AND u.p_username NOT LIKE "myAddress@mailserver.com";'
.. no problem.
When, however …
result=`/usr/bin/mysql -N -B mydatabase -e 'SELECT COUNT(*)
FROM orders as o JOIN users as u ON o.userthing=u.package
WHERE o.table BETWEEN (now() - INTERVAL 1 day) AND
now() - INTERVAL 25 hour) AND o.p_stateorder=1 AND
u.name != "The Site" AND u.p_username NOT LIKE "myAddress@mailserver.com";'`
.. errors.
So I’m guessing that something in there needs to be escaped, but I can’t say what.
Can someone help?
Thanks.