使用 Bash 中的 for 循環(huán),為網(wǎng)頁創(chuàng)建一個方便的調(diào)色板。
當(dāng)計算機顯示器的調(diào)色板有限時,網(wǎng)頁設(shè)計師通常使用一組Web 安全顏色來創(chuàng)建網(wǎng)站。雖然在較新設(shè)備上顯示的現(xiàn)代網(wǎng)站可以顯示比最初的 Web 安全調(diào)色板更多的顏色,但我有時喜歡在創(chuàng)建網(wǎng)頁時參考 Web 安全顏色。這樣我就知道我的網(wǎng)頁在任何地方都看起來不錯。
(資料圖片)
你可以在網(wǎng)上找到 Web 安全調(diào)色板,但我想擁有自己的副本以方便參考。你也可以使用 Bash 中的for
循環(huán)創(chuàng)建一個。
Bash for 循環(huán)
Bash 中的 for 循環(huán)的語法如下所示:
for 變量 in 集合 ; do 語句 ; done
例如,假設(shè)你想打印從 1 到 3 的所有數(shù)字。你可以快速在 Bash 命令行上編寫一個for
循環(huán)來為你完成這項工作:
$ for n in 1 2 3 ; do echo $n ; done123
分號是標(biāo)準(zhǔn)的 Bash 語句分隔符。它們允許你在一行中編寫多個命令。如果你要在 Bash 腳本文件中包含這個for
循環(huán),你可以用換行符替換分號并像這樣寫出for
循環(huán):
for n in 1 2 3 do echo $n done
我喜歡將do
和for
放在同一行,這樣我更容易閱讀:
for n in 1 2 3 ; do echo $ndone
一次多個 for 循環(huán)
你可以將一個循環(huán)放在另一個循環(huán)中。這可以幫助你迭代多個變量,一次做不止一件事。假設(shè)你想打印出字母 A、B 和 C 與數(shù)字 1、2 和 3 的所有組合。你可以在 Bash 中使用兩個for
循環(huán)來實現(xiàn),如下所示:
#!/bin/bashfor number in 1 2 3 ; do for letter in A B C ; do echo $letter$number donedone
如果將這些行放在名為for.bash
的 Bash 腳本文件中并運行它,你會看到九行顯示了所有字母與每個數(shù)字配對的組合:
$ bash for.bashA1B1C1A2B2C2A3B3C3
遍歷 Web 安全顏色
Web 安全顏色是從十六進制顏色#000
(黑色,即紅色、綠色和藍色值均為零)到#fff
(白色,即紅色、綠色和藍色均為最高),每個十六進制值的步進為 0、3、6、9、c 和 f。
你可以在 Bash 中使用三個for
循環(huán)生成 Web 安全顏色的所有組合的列表,其中循環(huán)遍歷紅色、綠色和藍色值。
#!/bin/bashfor r in 0 3 6 9 c f ; do for g in 0 3 6 9 c f ; do for b in 0 3 6 9 c f ; do echo "#$r$g$b" done donedone
如果將其保存在名為websafe.bash
的新 Bash 腳本中并運行它,你就會看到所有 Web 安全顏色的十六進制值的迭代:
$ bash websafe.bash | head#000#003#006#009#00c#00f#030#033#036#039
要制作可用作 Web 安全顏色參考的 HTML 頁面,你需要使每個條目成為一個單獨的 HTML 元素。將每種顏色放在一個 當(dāng)你運行新的 Bash 腳本并將結(jié)果保存到 HTML 文件時,你可以在瀏覽器中查看所有 Web 安全顏色的輸出: Colour gradient. 這個網(wǎng)頁不是很好看。深色背景上的黑色文字無法閱讀。我喜歡應(yīng)用一些 HTML 樣式來確保十六進制值在顏色矩形內(nèi)以黑色背景上的白色文本顯示。為了使頁面看起來非常漂亮,我還使用 HTML 網(wǎng)格樣式來排列每行六個框,每個框之間留出一些空間。 要添加這種額外的樣式,你需要在 for 循環(huán)前后包含其他 HTML 元素。頂部的 HTML 代碼定義樣式,底部的 HTML 代碼關(guān)閉所有打開的 HTML 標(biāo)簽:元素中。將 Bash 腳本更新為如下:
#!/bin/bashfor r in 0 3 6 9 c f ; do for g in 0 3 6 9 c f ; do for b in 0 3 6 9 c f ; do echo "
#$r$g$b
$ bash websafe.bash > websafe.html
#!/bin/bashcat<
#$r$g$b