echo 명령 문제

echo 명령 문제

파일을 읽고 싶은데 파일에 "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"KO"가 1개 이상 포함되어 있으면 인쇄하고 싶습니다.

답변1

이 시도,

#!/bin/bash

if grep -Fq "KO" res.txt
then
        echo "KO found, exiting.."
        exit
else
        echo "OK"
fi

관련 정보