Надання HTML з труби


15

Я хотів би мати можливість генерувати HTML, а потім передавати його програмі, яка відобразить її, приблизно так:

for i in 1 2 3
do
    for j in a b c
    do
        echo "<table border="1"><tr><td>$i</td><td>$j</td></tr></table>"
    done
done | /usr/bin/firefox

На жаль, Firefox не може відображати дані, накладені з stdin. Гугл-хром також не може бути. lynxможе, але хто хоче цим скористатися?

Я спробував створити іменовану трубку, відкривши її в chrome та / або firefox, а потім передавши до неї дані, - але браузер не оновлювався, коли я надсилав дані через названу трубу.

Чи є якісь текстові браузери, які надаватимуть HTML із stdin? Вихідні дані не повинні бути блискучими, я в основному зацікавлений зробити розмежувані дані трохи зручнішими для читання.

Редагувати:

Я спробував використати процедуру підстановки Bash, наприклад firefox <(sh /tmp/tablegen.sh), що не працювало. Найгірший сценарій: я міг би вивести тимчасовий файл, зробити рендер, а потім видалити, але я вважаю за краще трохи елегантніше рішення.


1
Подібне запитання тут: unix.stackexchange.com/questions/24931/…
wmz

Гарне посилання; досить добре підтвердив мою підозру, що використання тимчасового файлу - єдиний шлях.
Barton Chittenden

Відповіді:


14

З однієї з відповідей на це питання я знайшов bcat:

NAME

  bcat - browser cat

DESCRIPTION

  The bcat utility reads from standard input, or one or
  more files, and pipes output into a web browser. file
  may be '-', in which case standard input is concatenated
  at that position.

  When invoked as btee, all input is written immediately
  to standard output in addition to being piped into
  the browser.

Тепер я можу запустити такий сценарій:

$ python foo.py | bcat

... і результат HTML виходить на новій вкладці Firefox!

На Ubuntu та інших дистрибутивах Linux на базі Debian ви можете встановити bcatцю команду:

$ sudo aptitude install ruby-bcat

Привіт з 2019 року, вищевказана установка не спрацювала, але sudo gem install bcatзробила. :-)
roufamatic
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.