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