Ich weiß nicht, warum ich ein extra 0
bekomme, wenn ich mein Skript ausführen.Warum bekomme ich eine extra 0 auf meinem Skript
Dies ist mein Skript: Ich führe eine SQL-Abfrage und speichern Sie es in eine Datei valor.txt
.
Das ist mein Array: array=(50 60 70)
Valor.txt
:
count | trn_hst_id | trn_msg_host
-------+------------+--------------
11 | 50 | Aprobada
2 | 70 | Aprobada
(2 rows)
Code:
function service_status {
cd
cat valor.txt | grep $1 | gawk '{print $1}' FS="|" | sed "s/ //g"
if [ $? -eq 0 ]; then
echo -n 0
else
echo -n $1
fi
}
echo "<prtg>"
# <-- Start
for i in "${array[@]}"
do
echo -n " <result>
<channel>$i</channel>
<value>"
service_status $i
echo "</value>
</result>"
done
# End -->
echo "</prtg>"
exit
Und das ist meine Ausgabe.
<prtg>
<result>
<channel>50</channel>
<value>11
0</value>
</result>
<result>
<channel>60</channel>
<value>0</value>
</result>
<result>
<channel>70</channel>
<value>2
0</value>
</result>
</prtg>
Warum erhalte ich die 0
hier? —
<value>2
0</value>
Was sind die Werte in 'array' "Was ist in' valor.txt'? Vermutlich produziert Ihre Pipeline einen Wert, dann machen Sie 'echo -n 0'. –
Ich denke, es ist die Ausgabe von' cat valor.txt | grep $ 1 | gawk '{ Druck $ 1} 'FS = "|" | sed "s/// g" '. Nicht sicher, warum Sie diese Befehlssequenz haben und dann auch 'echo' Anweisungen basierend auf' $? 'Haben. – codeforester
@TomFenech sorry, jetzt ist es oben –