Shell

有沒有可以快速渲染基本 HTML 的簡單 Bash 工具?

  • February 28, 2021

有時我需要做一個簡單的任務,將基本的 HTML 輸出到控制台。我希望將其渲染得最少,以便一目了然。是否有可以在 shell 中處理基本 HTML 渲染的實用程序(想想Lynx風格的渲染——但不是實際的瀏覽器)?

例如,有時我會watch在 Apache 的mod_status頁面上放一個:

watch -n 1 curl http://some-server/server-status

頁面的輸出是帶有一些最小標記的 HTML,在 shell 中顯示如下:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<html><head>
<title>Apache Status</title>
</head><body>
<h1>Apache Server Status for localhost</h1>

<dl><dt>Server Version: Apache/2.2.22 (Ubuntu) PHP/5.3.10-1ubuntu3.15 with Suhosin-Patch</dt>
<dt>Server Built: Jul 22 2014 14:35:25
</dt></dl><hr /><dl>
<dt>Current Time: Wednesday, 19-Nov-2014 15:21:40 UTC</dt>
<dt>Restart Time: Wednesday, 19-Nov-2014 15:13:02 UTC</dt>
<dt>Parent Server Generation: 1</dt>
<dt>Server uptime:  8 minutes 38 seconds</dt>
<dt>Total accesses: 549 - Total Traffic: 2.8 MB</dt>
<dt>CPU Usage: u35.77 s12.76 cu0 cs0 - 9.37% CPU load</dt>
<dt>1.06 requests/sec - 5.6 kB/second - 5.3 kB/request</dt>
<dt>1 requests currently being processed, 9 idle workers</dt>
</dl><pre>__W._______.....................................................
................................................................
................................................................
................................................................
</pre>
<p>Scoreboard Key:<br />
"<b><code>_</code></b>" Waiting for Connection,
"<b><code>S</code></b>" Starting up,
"<b><code>R</code></b>" Reading Request,<br />
"<b><code>W</code></b>" Sending Reply,
"<b><code>K</code></b>" Keepalive (read),
"<b><code>D</code></b>" DNS Lookup,<br />
"<b><code>C</code></b>" Closing connection,
"<b><code>L</code></b>" Logging,
"<b><code>G</code></b>" Gracefully finishing,<br />
"<b><code>I</code></b>" Idle cleanup of worker,
"<b><code>.</code></b>" Open slot with no current process</p>
<p />

在 Lynx 中查看時,相同的 HTML 呈現為:Apache Status (p1 of 2) Apache Server Status for localhost

  Server Version: Apache/2.2.22 (Ubuntu) PHP/5.3.10-1ubuntu3.15 with Suhosin-Patch
  Server Built: Jul 22 2014 14:35:25
    ________________________________________________________________________________________________________

  Current Time: Wednesday, 19-Nov-2014 15:23:50 UTC
  Restart Time: Wednesday, 19-Nov-2014 15:13:02 UTC
  Parent Server Generation: 1
  Server uptime: 10 minutes 48 seconds
  Total accesses: 606 - Total Traffic: 3.1 MB
  CPU Usage: u37.48 s13.6 cu0 cs0 - 7.88% CPU load
  .935 requests/sec - 5088 B/second - 5.3 kB/request
  2 requests currently being processed, 9 idle workers

_C_______W_.....................................................
................................................................
................................................................
................................................................

  Scoreboard Key:
  "_" Waiting for Connection, "S" Starting up, "R" Reading Request,
  "W" Sending Reply, "K" Keepalive (read), "D" DNS Lookup,
  "C" Closing connection, "L" Logging, "G" Gracefully finishing,
  "I" Idle cleanup of worker, "." Open slot with no current process

lynx有一個“轉儲”模式,您可以使用它watch

$ watch lynx https://www.google.com -dump

輸出截圖

來自man lynx

  -dump  dumps  the  formatted  output  of  the default document or those
         specified on  the  command  line  to  standard  output.   Unlike
         interactive mode, all documents are processed.  This can be used
         in the following way:

         lynx -dump http://www.subir.com/lynx.html

         Files specified on the command line are  formatted  as  HTML  if
         their  names  end  with one of the standard web suffixes such as
         “.htm” or “.html”.  Use the -force_html option to  format  files
         whose names do not follow this convention.

這個Ask Ubuntu 問題有更多選擇。

引用自:https://unix.stackexchange.com/questions/168866