我想读取一个文件,如果文件中有一个“KO”,则会中断程序并打印“KO”。如果全部都是“OK”,我希望在程序结束时它会显示“OK”。这里是代码:
#!/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
问题是,当匹配所有“OK”时,程序会向我显示以下内容:
./provaScript2.sh: line 12: [: too many arguments
./provaScript2.sh: line 12: [: ==: unary operator expected
OK
IOW我有一个这样的文件:
OK
OK
OK
OK
KO
OK
OK
OK
OK
OK
我想打印OK
它是否包含所有“OK”而没有“KO”。KO
如果它包含至少 1 个“KO”,我想要打印
答案1
试试这个,
#!/bin/bash
if grep -Fq "KO" res.txt
then
echo "KO found, exiting.."
exit
else
echo "OK"
fi