Experimente este,
#!/bin/bash
if grep -Fq "KO" res.txt
then
echo "KO found, exiting.."
exit
else
echo "OK"
fi
Eu quero ler um arquivo e depois se houver um "KO" no arquivo eu vou quebrar o programa e imprimir "KO". Se houver todos os "OK" eu quero que no final do programa ele irá me exibir "OK". Aqui o código:
#!/bin/bash
filename="res.txt"
righe=$(wc -l $filename | awk '{print $1}' )
riga=0
while [ $riga -lt $righe ]; do
let riga+=1
current=$(head -$riga $filename | tail -1)
if [ $current == 'KO' ]; then
stampa="KO"
break
else
stampa="OK"
fi
done
echo $stampa
O problema é que ao combinar todos os "OK" o programa me mostra isso:
./provaScript2.sh: line 12: [: too many arguments
./provaScript2.sh: line 12: [: ==: unary operator expected
OK
IOW Eu tenho um arquivo como este:
OK
OK
OK
OK
KO
OK
OK
OK
OK
OK
Eu quero imprimir OK
se ele contiver todos os "OK" e não "KO". Quero imprimir KO
se contiver pelo menos 1 "KO"
Tags text-processing