Uma possível simplificação é usar o retorno de grep
em si como a condição, grep
sairá com o código 0 (para "sucesso") somente se houver correspondências. Não é necessário contar linhas, pois você está procurando uma correspondência qualquer .
Além disso, você não precisa escapar do -
com \
, já que não é um meta-caractere para expressões regulares do grep.
Você pode passar o argumento grep
a -q
, para que não imprima as linhas correspondentes (só sai com um código de saída apropriado, dependendo da correspondência entre as linhas).
if /sbin/iptables-save | grep -q '^-'; then
echo "Iptables already set....skipping!!!!!"
else
# set up iptables here
fi
Acho que verificar a saída de iptables-save
para verificar se alguma regra foi configurada está correta. Não consigo pensar em outra forma que seja tão confiável ou mais simples.