if-else 문에서 grep 사용 [닫기]

if-else 문에서 grep 사용 [닫기]

입력 문자열이 파일에 없으면 코드가 출력되지 않는 이유는 무엇입니까? 문자열을 입력했는데 파일에 없으면 응답이 없고 처음으로 다시 반복됩니다. 누군가 내 코드에 어떤 문제가 있는지 말해 줄 수 있나요?

while :
do
echo "Please enter a string"
read input_string
echo "Please enter the file name too see if that string is present in it - (Enter .abw after)"
read input_string1
if grep -q $input_string $input_string1 ; then
echo  "Your string has been found"
fi
done

답변1

while :
 do
     echo "Please enter a string"
     read input_string
     echo "Please enter the file name too see if that string is present in it - (Enter .abw after)"
     read input_string1
     grep -q "${input_string}" "${input_string1}"                                                                 
     if [ $? -eq 0 ] ; then
         echo  "Your string has been found"
     else 
         echo "Your string has not been found"
     fi
 done

답변2

누락된 else 분기를 찾았지만 제안 사항이 있습니다.

$input_string $input_string1try를 사용하는 대신 뒤에 1이 ${input_string} ${input_string1}오지 않는지 확인하세요 .$input_string

관련 정보