|
藍森林 http://www.lslnet.com 2006年6月26日 11:18
請教一個shell中的幾個問題
input ()
{
while echo "$*(Y/N)?\c"
do
read key
case $key in
[yY]) return 0;;
[nN]) return 1;;
esac
done
}
end()
{
echo $*
echo "end"
exit 1
}
input 請輸入 || end "\033[A"
請問最後這一句shell是什麼意思啊,"\033[A"是些什麼字符啊,代表什麼意思呢?\c是製表符嗎,shell跟c語言中的製表符相同嗎? |
請教一個shell中的幾個問題
頂 |
請教一個shell中的幾個問題
-->
"\033[A" :ANSI標準的終端控制指令(查以前的帖子)
"\c":echo默認輸出要換行,加"\c"強制它不換行。 |
請教一個shell中的幾個問題
| 請教一個shell中的幾個問題
-->
昨晚我剛貼一篇" shell 十三問(之 3)",請抬頭找一找? |
請教一個shell中的幾個問題
轉貼: Shell高級屏幕輸出
對於在Shell下面編寫屏幕程序,大家使用echo命令比較多,而且此命令也比較快。下面介紹的是比較漂亮
一點的方法,但是速度比較慢。要實現這一點,系統上需要一個彩色監視器和tput命令。
一.使用
在使用tput前,需要在腳本或命令行中使用tput命令初始化終端。
$ tput init
tput產生三種不同的輸出:字符型、數字型和布爾型(真/假)。
/字符串輸出/
下面是大部分常用字符串:
名字含義
bel 警鈴
blink 閃爍模式
bold 粗體
civis 隱藏光標
clear 清屏
cnorm 不隱藏光標
cup 移動光標到屏幕位置( x,y)
el 清除到行尾
ell 清除到行首
smso 啟動突出模式
rmso 停止突出模式
smul 開始下劃線模式
rmul 結束下劃線模式
sc 保存當前光標位置
rc 恢復光標到最後保存位置
sgr0 正常屏幕
rev 逆轉視圖
/數字輸出/
以下是大部分常用數字輸出。
名字含義
cols 列數目
ittab設置寬度
lines 屏幕行數
/布爾輸出/
在tput中只有兩種布爾操作符。
名字含義
chts 光標不可見
hs 具有狀態行
例如:tput clear 清除屏幕
二.光標位置
可以用tput將光標放在屏幕任意位置。格式為:
cup r c
r為從上至下屏幕行數, c為穿過屏幕列數。
最好將之編成函數,這樣就可以把行和列的值傳遞給它。
例子:tput cup 2 3命令將光標放到第2行、第3列。
三.菜單中使用顏色
對域使用顏色可以使數據輸入屏幕看起來更加專業。下面將使用的顏色是A N S I標準顏
色,並不是所有顏色都適合於所有系統。下面列出了大部分常用顏色。
1. 前景色:
數字顏色數字顏色
3 0 黑色3 4 藍色
3 1 紅色3 5 紫色
3 2 綠色3 6 青色
3 3 黃(或棕)色3 7 白(或灰)色
2. 背景色:
數字顏色數字顏色
4 0 黑色4 4 青色
4 1 紅色4 5 藍色
4 2 綠色4 6 青色
4 3 黃(或棕)色4 7 白(或灰)色
例子:黑底綠字echo "\033[40;32m"
使用tput命令可以增強應用外觀及腳本的控制。顏色設置可以增加應用的專業性。注意使
用顏色不要太過火,否則速度會非常的慢。 |
| |