繁体   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