Shell-Script
Shell循環輸出日期和數值到HTML
我有一個棘手的問題,需要以以下內容格式大量生成 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>