Linux中用于更改光標(biāo)和文本屬性的tput命令使用詳解

tput 命令將通過 terminfo 數(shù)據(jù)庫對您的終端會話進(jìn)行初始化和操作。通過使用 tput,您可以更改幾項(xiàng)終端功能,如移動(dòng)或更改光標(biāo)、更改文本屬性,以及清除終端屏幕的特定區(qū)域。與 UNIX 中的大多數(shù)命令一樣,tput 命令既可以用在 shell 命令行中也可以用在 shell 腳本中。為讓您更好地理解 tput,本文首先從命令行講起,然后緊接著講述 shell 腳本示例。tput命令將通過 terminfo 數(shù)據(jù)庫對您的終端會話進(jìn)行初始化和操作。通過使用tput您可以更改幾項(xiàng)終端功能,如移動(dòng)或更改光標(biāo)、更改文本屬性,以及清除終端屏幕的特定區(qū)域。我們先看看它的常用參數(shù):
參數(shù)
(1)字符串輸出參數(shù)設(shè)置
bel 警鈴
blink 閃爍模式
bold 粗體
civis 隱藏光標(biāo)
clear 清屏
cnorm 不隱藏光標(biāo)
cup 移動(dòng)光標(biāo)到屏幕位置(x,y)
el 清除到行尾
ell 清除到行首
smso 啟動(dòng)突出模式
rmso 停止突出模式
smul 開始下劃線模式
rmul 結(jié)束下劃線模式
sc 保存當(dāng)前光標(biāo)位置
rc 恢復(fù)光標(biāo)到最后保存位置
sgr0 正常屏幕
rev 逆轉(zhuǎn)視圖
(2)數(shù)字輸出參數(shù)設(shè)置
cols 列數(shù)目
ittab 設(shè)置寬度
lines 屏幕行數(shù)
(3)布爾輸出參數(shù)設(shè)置
chts 光標(biāo)不可見
hs 具有狀態(tài)行
應(yīng)用
光標(biāo)屬性
在 UNIX shell 腳本中或在命令行中,移動(dòng)光標(biāo)或更改光標(biāo)屬性可能是非常有用的。有些情況下,您可能需要輸入敏感信息(如密碼),或在屏幕上兩個(gè)不同的區(qū)域輸入信息。在此類情況下,使用 tput 可能會對您有所幫助。
移動(dòng)光標(biāo)
使用 tput 可以方便地實(shí)現(xiàn)在各設(shè)備上移動(dòng)光標(biāo)的位置。通過在 tput 中使用 cup 選項(xiàng),或光標(biāo)位置,您可以在設(shè)備的各行和各列中將光標(biāo)移動(dòng)到任意 X 或 Y 坐標(biāo)。設(shè)備左上角的坐標(biāo)為 (0,0)。
要在設(shè)備上將光標(biāo)移動(dòng)到第 5 列 (X) 的第 1 行 (Y),只需執(zhí)行 tput cup 5 1。另一個(gè)示例是 tput cup 23 45,此命令將使光標(biāo)移動(dòng)到第 23 列上的第 45 行。
移動(dòng)光標(biāo)并顯示信息
另一種有用的光標(biāo)定位技巧是移動(dòng)光標(biāo),執(zhí)行用于顯示信息的命令,然后返回到前一光標(biāo)位置:
(tput sc ; tput cup 23 45 ; echo “Input from tput/echo at 23/45” ; tput rc)
下面我們分析一下 subshell 命令:
tput sc
必須首先保存當(dāng)前的光標(biāo)位置。要保存當(dāng)前的光標(biāo)位置,請包括 sc 選項(xiàng)或“save cursor position”。
tput cup 23 45
在保存了光標(biāo)位置后,光標(biāo)坐標(biāo)將移動(dòng)到 (23,45)。
echo “Input from tput/echo at 23/45”
將信息顯示到 stdout 中。
tput rc
在顯示了這些信息之后,光標(biāo)必須返回到使用 tput sc 保存的原始位置。要使光標(biāo)返回到其上次保存的位置,請包括 rc 選項(xiàng)或“restore cursor position”。
注意:由于本文首先詳細(xì)介紹了通過命令行執(zhí)行 tput,因此您可能會覺得在自己的 subshell 中執(zhí)行命令要比單獨(dú)執(zhí)行每條命令然后在每條命令執(zhí)行之前顯示提示更簡潔。
更改光標(biāo)的屬性
在向某一設(shè)備顯示數(shù)據(jù)時(shí),很多時(shí)候您并不希望看到光標(biāo)。將光標(biāo)轉(zhuǎn)換為不可見可以使數(shù)據(jù)滾動(dòng)時(shí)的屏幕看起來更整潔。要使光標(biāo)不可見,請使用 civis 選項(xiàng)(例如,tput civis)。在數(shù)據(jù)完全顯示之后,您可以使用 cnorm 選項(xiàng)將光標(biāo)再次轉(zhuǎn)變?yōu)榭梢姟?br />文本屬性
更改文本的顯示方式可以讓用戶注意到菜單中的一組詞或警惕用戶注意某些重要的內(nèi)容。您可以通過以下方式更改文本屬性:使文本加粗、在文本下方添加下劃線、更改背景顏色和前景顏色,以及逆轉(zhuǎn)顏色方案等。
要更改文本的顏色,請使用 setb 選項(xiàng)(用于設(shè)置背景顏色)和 setf 選項(xiàng)(用于設(shè)置前景顏色)以及在 terminfo 數(shù)據(jù)庫中分配的顏色數(shù)值。通常情況下,分配的數(shù)值與顏色的對應(yīng)關(guān)系如下,但是可能會因 UNIX 系統(tǒng)的不同而異:
0:黑色
1:藍(lán)色
2:綠色
3:青色
4:紅色
5:洋紅色
6:黃色
7:白色
執(zhí)行以下示例命令可以將背景顏色更改為黃色,將前景顏色更改為紅色:
tput setb 6
tput setf 4
要反顯當(dāng)前的顏色方案,只需執(zhí)行 tput rev。
有時(shí),僅為文本著色還不夠,也就是說,您想要通過另一種方式引起用戶的注意??梢酝ㄟ^兩種方式達(dá)到這一目的:一是將文本設(shè)置為粗體,二是為文本添加下劃線。
要將文本更改為粗體,請使用 bold 選項(xiàng)。要開始添加下劃線,請使用 smul 選項(xiàng)。在完成顯示帶下劃線的文本后,請使用 rmul 選項(xiàng)。
相關(guān)文章
win7系統(tǒng)中運(yùn)行舊版CAD光標(biāo)不停閃爍怎么辦?
win7系統(tǒng)中運(yùn)行舊版CAD光標(biāo)不停閃爍怎么辦?win7系統(tǒng)安裝了舊版本的cad,打開以后,發(fā)現(xiàn)光標(biāo)不斷閃爍,該怎么解決呢?下面分享兩種方法,需要的朋友可以參考下2016-10-13WinXP光標(biāo)變粗怎么辦?WinXP電腦光標(biāo)變粗的解決方法
WinXP光標(biāo)變粗怎么辦?最近有朋友們遇到這個(gè)問題,下面小編就給大家?guī)鞼inXP電腦光標(biāo)變粗的解決方法,一起來看看吧2016-08-31WinXP系統(tǒng)電腦該如何啟用光標(biāo)瀏覽功能
一些用戶可能對于光標(biāo)瀏覽不太熟悉,但是這個(gè)功能對老年人來說是非常重要的,一起來看看WinXP系統(tǒng)電腦該如何啟用光標(biāo)瀏覽功能2016-08-24Win8系統(tǒng)開機(jī)后鼠標(biāo)光標(biāo)不停閃爍無法正常輸入文字的解決方法
有網(wǎng)友反映win8系統(tǒng)開機(jī)移動(dòng)鼠標(biāo),發(fā)現(xiàn)鼠標(biāo)光標(biāo)不停閃爍,而且鼠標(biāo)定位到一個(gè)位置后,無法正常輸入文字,重新啟動(dòng)系統(tǒng)一段時(shí)間后,又變成這樣,這是怎么回事?這種情況怎么2016-04-20Win10 Mobile系統(tǒng)鍵盤光標(biāo)控制器怎么調(diào)整左右位置?
Win10 Mobile系統(tǒng)鍵盤光標(biāo)控制器怎么調(diào)整左右位置?與相比WP8.1有了很大改進(jìn),并且人性化地加入了鍵盤光標(biāo)控制器,允許用戶按住中間的小圓點(diǎn)上下左右移動(dòng)光標(biāo)位置,下面分2015-08-13Win7旗艦版如何調(diào)整鼠標(biāo)光標(biāo)的粗細(xì)讓其變成剛好
鼠標(biāo)指針是有大有小的,是可調(diào)節(jié)的,也有少數(shù)情況下指針大小太小了或者太大了,看著很不習(xí)慣,甚至是不舒服,下面是具體的調(diào)節(jié)過程,需要的朋友可以看看2015-06-30- 這篇文章主要介紹了Linux vim光標(biāo)移動(dòng)快捷鍵,vim的技巧太多了,本文就摘取光標(biāo)移動(dòng)這一項(xiàng)單獨(dú)總結(jié)它的快捷鍵,需要的朋友可以參考下2015-06-25
WP10/Win10鍵盤定位點(diǎn) 打字移動(dòng)光標(biāo)更高效
在WP10虛擬鍵盤的左下角,我們發(fā)現(xiàn)了一個(gè)藍(lán)色的“點(diǎn)”,這顏色應(yīng)該是與系統(tǒng)配色相同,我們暫且稱之為“定位點(diǎn)”下面就和小編一起來了解下吧2015-01-25Ubuntu14更新后無法進(jìn)入系統(tǒng)卡在光標(biāo)界面解怎么辦?
Ubuntu14更新后無法進(jìn)入系統(tǒng)卡在光標(biāo)界面解怎么辦?本人安裝的是win7和ubuntu14雙系統(tǒng)。昨天早上打開本子,選好系統(tǒng)發(fā)現(xiàn),電腦卡在光標(biāo)界面不動(dòng)了,進(jìn)不去了,下面分享這個(gè)2015-01-15Win10光標(biāo)大小怎么設(shè)置?Win10設(shè)置光標(biāo)大小的方法
不少用戶都反饋win10系統(tǒng)的默認(rèn)光標(biāo)太小了,那么Win10光標(biāo)大小怎么設(shè)置?下面小編就給大家?guī)鞼in10設(shè)置光標(biāo)大小的方法,一起來看看吧2016-12-13