Observe que, após if , você coloca um comando . Dependendo do status de saída desse comando, você insere o bloco then ou o bloco else . Observe também que [ é um comando , não apenas a sintaxe (em um prompt bash, digite help [ then help test )
Você quer
#!/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
Como o grep usa expressões regulares, isso pode retornar falsos positivos. Por exemplo, se qid=. , grep retornará "true" se houver pelo menos um caractere no arquivo. Leia man grep para as opções extensivas para ajudar a restringir seus resultados (sugira, considere as opções -w e -F .
Note também que evitei usar nomes de variáveis ALLCAPS. Eles podem causar problemas se você não for cuidadoso. A melhor prática é evitar usá-las.