A mensagem "A rede não está acessível" é impressa em stderr
, não em stdout
, por isso não é capturada pela sua substituição ( $(ping ...)
). Você precisa redirecionar stderr
para stdout
ao executar ping
, não quando você registra:
print_and_log "$(ping -c10 "$i" 2>&1)"