偶用tput編的一個選擇式選單(轉)

post0發表於2007-08-11
偶用tput編的一個選擇式選單(轉)[@more@]

偶編的簡單的選單:感覺還可以,就是執行太慢,可能不實用,但費了偶不少腦筋

,不忍棄之..

######################################

#

# program: MENU_CD

#

######################################

# 螢幕任意位置函式

xy()

{

#_R=row,_C=column

_R=$1

_C=$2

tput cup $_R $_C

}

########## 格式化dd_code.txt檔案內容並生成螢幕選單

clear

xy 1 2

echo '[36m┌────────────────────────────────┐[37m' #注[36m)( 色彩控制符在unix下應該是這樣的^[[36m

xy 1 26

echo '[41m[37m業務處理主選單[40m'

xy 2 2

echo ' '

r_1=2 # 畫框行變數

r_row=1 # 記錄行變數

c_col=5 # 記錄列變數

count=0 # 迴圈記數器,dd_code.txt文字行變數

wc -l dd_code.txt >menu.tmp

sum=`awk '{print $1}' menu.tmp` ## 迴圈終止值

while [ $count -lt $sum ]

do

xy $r_1 2

echo '[36m│[37m'

xy $r_1 68

echo '[36m│[37m'

#xy $r_row $c_col

#sed -n ""$count"p" dd_code.txt

################################### 計算列位置

bc <hh.tmp

$count%2

quit

!

###################################

int=`sed -n "1p" hh.tmp`

if [ "$int" = "0" ]; then

c_col=5

r_row=`expr $r_row + 1`

count=`expr $count + 1`

r_1=`expr $r_1 + 1`

xy $r_row $c_col

sed -n ""$count"p" dd_code.txt

else

c_col=5

#r_row=`expr $r_row + 1`

c_col=`expr $c_col + 30`

count=`expr $count + 1`

#r_1=`expr $r_1 + 1`

xy $r_row $c_col

sed -n ""$count"p" dd_code.txt

fi

done

echo " [36m└────────────────────────────────┘[37m"

echo " 請輸你的選擇[回車則退出]:[32mc"

read choose_dh

echo "[37m"

if [ "$choose_dh" = "" ]; then

rm *.tmp # 刪除臨時檔案

exit 1

fi

..........以後是你就可以是你要呼叫子程式或子選單或命令的語句了...

####################################

這是選單內容文字: dd_code.txt

1 -----選單名

2 -----選單名

3 -----選單名

4 -----選單名

.......

n -----選單名

將選單名改成你所定義的名稱,然後執行menu_dd即可.

請大家斧正

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/8225414/viewspace-944814/,如需轉載,請註明出處,否則將追究法律責任。

相關文章