Existem várias maneiras de fazer isso. Se o seu script não precisar de mais de um argumento, basta usar um loop while
para ler o arquivo. Também removerei algumas das opções grep
desnecessárias (você não precisa de --only--matching
ao usar --quiet
, nunca verá a saída, não precisa de regex perl porque não está usando nenhuma das seus recursos e você não precisa de --text
, já que não analisará arquivos binários) e usar os nomes das opções mais curtas para brevidade.
Portanto, uma versão funcional (e ligeiramente melhorada) do seu script seria:
#!/bin/bash
DOMAINS=( '.com' '.biz' )
while read input; do
for (( i=0;i<${#DOMAINS[@]};i++)); do
whois "$input${DOMAINS[$i]}" | grep -q 'Creation Date'
if [ $? -eq 0 ]; then
echo -e "$input${DOMAINS[$i]}\tregistered\t"
else
echo -e "$input${DOMAINS[$i]}\tavailable\t"
fi
done
done < "$1"
Se você executar isso em um arquivo que contenha:
google
foogle
Você recebe:
$ foo.sh file
google.com registered
google.biz available
gaagle.com registered
gaagle.biz available