Próbuję użyć „dla” imię in ", aby przejść przez listę wartości. Używa pierwszej wartości w linii, ale trzyma się niekończącej się pętli.
#!/bin/ksh
set -x
# created 7 JAn 2013 by L Cooper
# purpose is to verify completion of QAD online backup. If incomplete then email personnel
#[email protected]
[email protected]
TEST=1740 # Success code
SVR=IBM2
LOGDIR=/tmp #Log location
LOGS="onlineeuro onlinedata online" # logs to check
# Check QAD online backup log for code 3740, which indicates successful backup
#for logchk in onlineeuro onlinedata onlinena
for logchk in $LOGS
do
while [ "$(/usr/bin/tail -n -2 $LOGDIR/$logchk.log | head -n +1 | tail -c 6 | head -c 4)" != "$TEST" ]
do
echo $LOGDIR/$logchk
echo "The QAD online backup $logchk on $SVR may have errors...please check" | mailx -s "***TEST*** There mat be QAD onl
ine backup errors!!" $EMAILTO
done
done
Wynik wykonania:
+ [email protected]
+ TEST=1740
+ SVR=IBM2
+ LOGDIR=/tmp
+ LOGS=onlineeuro onlinedata online
+ /usr/bin/tail -n -2 /tmp/onlineeuro.log
+ head -n +1
+ head -c 4
+ tail -c 6
+ [ 3740 != 1740 ]
+ echo /tmp/onlineeuro
/tmp/onlineeuro
+ mailx -s ***TEST*** There mat be QAD online backup errors!! [email protected]
+ echo The QAD online backup onlineeuro on IBM2 may have errors...please check
+ /usr/bin/tail -n -2 /tmp/onlineeuro.log
+ head -n +1
+ head -c 4
+ tail -c 6
+ [ 3740 != 1740 ]
+ echo /tmp/onlineeuro
/tmp/onlineeuro
+ mailx -s ***TEST*** There mat be QAD online backup errors!! [email protected]
+ echo The QAD online backup onlineeuro on IBM2 may have errors...please check
+ /usr/bin/tail -n -2 /tmp/onlineeuro.log
+ head -n +1
+ head -c 4
+ tail -c 6
+ [ 3740 != 1740 ]
+ echo /tmp/onlineeuro
/tmp/onlineeuro
+ mailx -s ***TEST*** There mat be QAD online backup errors!! [email protected]
+ echo The QAD online backup onlineeuro on IBM2 may have errors...please check
+ /usr/bin/tail -n -2 /tmp/onlineeuro.log
+ head -c 4
+ head -n +1
+ tail -c 6
+ [ 3740 != 1740 ]
+ echo /tmp/onlineeuro
/tmp/onlineeuro
+ mailx -s ***TEST*** There mat be QAD online backup errors!! [email protected]
+ echo The QAD online backup onlineeuro on IBM2 may have errors...please check
+ /usr/bin/tail -n -2 /tmp/onlineeuro.log
****** powtarza się w nieskończoność ******
shell-script
ksh
infinite-loop
Lee Cooper
źródło
źródło
Odpowiedzi:
Wydaje się, że do czasu ... zrobienia ... pętli ... Twoim zamiarem było raczej napisanie bloku "if", takiego jak ten
Przy okazji (ale to nie jest temat) potok „ogona, głowy, ogona, głowy” wydaje mi się raczej zaciemniony, którą linię pliku logu interesuje konkretnie?
źródło