Коротше кажучи: я намагаюся побудувати інший вивід для пінгу, який працює краще для деяких речей, які я намагаюся зробити. Для цього я виводжу вихід ping до sed, щоб видалити все, окрім мілісекунд, які він приймає. Остання частина написана на python, і вона створює вихід. Ось код:
ping google.com | sed '/^[^=]*$/d;s/^[^=]*=[^=]*=[^=]*=//;s/ ms//' | python3 -c 'while True:
l = [float(input()) for _ in range(10)]
m = sum(l) / len(l)
n = sum(abs(i - m) for i in l) / len(l)
print("{}\t{}".format(m, n))'
Я спробував запустити його в fish і bash, і він не працює (= & gt; я не отримую виводу). Однак окремі частини працюють ping google.com | sed '/^[^=]*$/d;s/^[^=]*=[^=]*=[^=]*=//;s/ ms//'
дає очікуваний випуск. Сценарій python дає очікуваний вивід, якщо я використовую cat, щоб вкласти в нього файл.
cmd1 | cmd2 > f
слідом за нимиcat f | cmd3
має бути еквівалентнимcmd1 | cmd2 | cmd3
. (З затримкою між виходами) Але в цьому випадку це не так, з якоїсь причини я не знаю.