偶用tput编的一个选择式菜单

王朝other·作者佚名  2008-05-18
窄屏简体版  字體: |||超大  

偶编的简单的菜单:感觉还可以,就是运行太慢,可能不实用,但费了偶不少脑筋

,不忍弃之..

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

#

# program: MENU_CD

#

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

# 屏幕任意位置函数

xy()

{

#_R=row,_C=column

_R=$1

_C=$2

tput cup $_R $_C

}

########## 格式化dd_code.txt文件内容并生成屏幕菜单

clear

xy 1 2

echo '┌────────────────────────────────┐' #注)( 色彩控制符在unix下应该是这样的^[[36m

xy 1 26

echo '业务处理主菜单'

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 '│'

xy $r_1 68

echo '│'

#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 " └────────────────────────────────┘"

echo " 请输你的选择[回车则退出]:\c"

read choose_dh

echo ""

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

rm *.tmp # 删除临时文件

exit 1

fi

..........以后是你就可以是你要调用子程序或子菜单或命令的语句了...

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

这是菜单内容文本: dd_code.txt

1 -----菜单名

2 -----菜单名

3 -----菜单名

4 -----菜单名

.......

n -----菜单名

将菜单名改成你所定义的名称,然后运行menu_dd即可.

请大家斧正.

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航