您的位置:首页 > 文档 > Shell >
 文章分类 

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


创建:2005-10-26 00:49:45
作者:Unlinux
来自: http://www.Unlinux.com


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

######################################
#
# 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即可.
请大家斧正.

转载自:http://www.unlinux.com/doc/shell/20051026/232.html

评论】 【加入收藏夹】 【 】 【打印】 【关闭
 *  请尊重我们的劳动,转载请注明出自UnLinux.Com及作者名 * 

※ 相关链接
无相关信息
Copyright © 2005 UnLinux.Com All Rights Reserved