Как напечатать сообщение об ошибке для этой конкретной команды ping?

ping 8.8.8.8 | while read pong; do echo "$(date +%F_%T) - - $pong"; done >> file.txt

Когда интернет пропадает, он показывает "Пункт назначения недоступен" только в терминале (termux android), а не в текстовом файле. Я хочу сообщение об ошибке также в текстовом файле.

1 ответ

Ты можешь использовать &> перенаправить как stdout & stderr в выходной файл.

Например:

$ ping <IPaddr> | while read pong; do echo "$(date +%F_%T) - - $pong"; done >> file.txt 2>&1

[root@localhost tmp]#  ping 192.168.56.149 | while read pong; do echo "$(date +%F_%T) - - $pong"; done > file.txt 2>&1
^C
[root@localhost tmp]# cat file.txt
2018-09-18_18:03:28 - - PING 192.168.56.149 (192.168.56.149) 56(84) bytes of data.
2018-09-18_18:03:28 - - From 192.168.56.102 icmp_seq=1 Destination Host Unreachable
2018-09-18_18:03:28 - - From 192.168.56.102 icmp_seq=2 Destination Host Unreachable
2018-09-18_18:03:28 - - From 192.168.56.102 icmp_seq=3 Destination Host Unreachable
[root@localhost tmp]# 
Другие вопросы по тегам