簡體   English   中英

將 bash 中的換行符轉換為 HTML 格式

[英]Break lines in bash to HTML format

我在 IP 地址之間設置斷線時遇到問題。 它們出現在 1 條長水平線上。 我可以在第一個腳本上做一個斷行,但它仍然出現在 1 行中。

腳本 #1 (showblock.sh)

command=$(pfctl -t bruteforce -T show)
my_array="${command[@]}"

for i in "${my_array[@]}"
do
   : 
   # do whatever on $i
   printf "%s\n" "${my_array[@]}"
done

腳本 #2 (showBlockOutput.sh)

#!/bin/sh
current_date=$(date)
output=$(showblock.sh)
OUT=oldBlocks/ipblock.html


cat << EOF > $OUT
<html>
<head>
  <meta http-equiv="refresh" content="30">
</head>
<body>
<h1>Blocked IPs</h1>
$current_date <br>
$output 
<br>
</body>
</html>
EOF

您沒有將$command$my_array為數組。 您可以將變量包裝在()以將其拆分為數組。

my_array=(${command})

並且如果您希望在呈現 HTML 時將它們作為單獨的行,則需要將<br>放在行之間,而不是換行符。

沒有必要為for循環, printf自動循環時給出比格式運算符的更多投入。

printf "%s<br>\n" "${my_array[@]}"

整個showblock.sh腳本可以只是一行代碼:

#!/bin/bash
printf "%s<br>\n" $(pfctl -t bruteforce -T show)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM