파일에 특정 값이 있는지 확인하기 위해 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
.
또한 변수 이름을 모두 대문자로 사용하는 것을 피합니다.그들은 문제를 일으킬 수 있습니다조심하지 않으면. 가장 좋은 방법은 사용하지 않는 것입니다.