파일에서 특정 숫자 값을 확인하기 위해 If then else를 작성 중입니다.

파일에서 특정 숫자 값을 확인하기 위해 If then else를 작성 중입니다.

파일에 특정 값이 있는지 확인하기 위해 If then else 스크립트를 작성 중입니다. 값이 존재하면 인쇄된 값이 존재하고, 그렇지 않으면 인쇄된 값이 존재하지 않습니다.

#!/bin/bash
#This script will check a file and determine if the QID exists.
#search the zero day file for qids and system tracking id's. These are contained in
#the file file.

echo What is the QID number $HOME?
read QID

#Set some variables
Qualyfile=$(cat /home/dc368/zeroday/zerodayresearch)
QualysID=$QID

If [ $Qualyfile|grep $QualysID = $QualysID ]; then 
    echo qid exists
else echo qid does not exist
fi

답변1

if이후 에 참고하세요주문하다. 에 따라종료 상태then이 명령을 사용하면 하나 이상의 블록을 입력할 수 있습니다 else. 또한 [이것은주문하다, 구문뿐만 아니라 (bash 프롬프트에서 help [then 입력 help test)

당신이 원하는

#!/bin/bash
read -p "What is the QID? " qid
file=/home/dc368/zeroday/zerodayresearch
if grep -q "$qid" "$file"; then
    echo qid exists
else 
    echo qid does not exist
fi

grep은 정규식을 사용하므로 잘못된 긍정을 반환할 수 있습니다. 예를 들어, qid=.파일에 문자가 하나 이상 있으면 grep은 "true"를 반환합니다. man grep결과 범위를 좁히는 데 도움이 되는 다양한 옵션(팁, 고려 사항 -w및 옵션)을 읽어보세요 -F.

또한 변수 이름을 모두 대문자로 사용하는 것을 피합니다.그들은 문제를 일으킬 수 있습니다조심하지 않으면. 가장 좋은 방법은 사용하지 않는 것입니다.

관련 정보