Como observado, você deve corrigir o $File
typo.
Dependendo do que você faz com a saída, talvez você não precise do teste if
. Você diz que gostaria do endereço IP armazenado em uma variável:
file=$1
echo $file
ip=$(grep -e DN $1 | awk '{ print $2; }')
echo $ip
Isso pode ser simplificado ainda mais pelo que vale, mas corresponde ao que você já tem.
Observe que isso corresponderá apenas à instância primeiro de um IP correspondente a 'DN' no arquivo. esse comportamento está implícito no seu uso da opção -q
para grep
, que sai imediatamente na primeira correspondência.
Se você quiser fazer algo com cada ocorrência, terá que fazer algo diferente.