Shell-Script

Shell循環輸出日期和數值到HTML

  • October 17, 2020

我有一個棘手的問題,需要以以下內容格式大量生成 HTML。

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Example</title>
</head>
<body>

<div>
<time>2020-10-01 07:46:13</time>
<p>text01</p>
</div>

<div>
<time>2020-10-02 07:46:13</time>
<p>text02</p>
</div>

more...

</body>
</html>

它需要循環出兩個值。

  • 日期(每天遞增)
  • 編號(從 01 開始遞增)

我需要生成大約 100 ,我該怎麼做?

提前感謝任何幫助!

這樣的事情可能對你有用:

#!/bin/bash

cat << EOF
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Example</title>
</head>
<body>

EOF

for ((i = 1; i <= 100; ++i)); do
cat << EOF
<div>
<time>$(date +"%Y-%m-%d %H:%M:%S" -d "+${i} days")</time>
<p>$(printf "test%02d" "${i}")</p>
</div>

EOF

done


cat << EOF
</body>
</html>
EOF

它首先列印文件頂部不變的內容。接下來,它從 1..100 開始循環。每次通過循環,它會生成一個div塊。時間是目前時間加上i天數,段落test後面跟著i(用單個 0 填充)。它通過列印文件末尾不會更改的內容來結束。

範例執行:

$ ./ex.sh
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Example</title>
</head>
<body>

<div>
<time>2020-10-17 22:57:00</time>
<p>test01</p>
</div>

<div>
<time>2020-10-18 22:57:00</time>
<p>test02</p>
</div>

...

<div>
<time>2021-01-23 21:57:01</time>
<p>test99</p>
</div>

<div>
<time>2021-01-24 21:57:01</time>
<p>test100</p>
</div>

</body>
</html>

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