免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2252 | 回复: 5
打印 上一主题 下一主题

如何实现? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2003-01-15 11:42 |只看该作者 |倒序浏览
我想写一段代码完成以下功能,选择1设置为VT100的终端类型
选2设置为ansi的类型。请高手给上一段SHELL实现!谢谢

论坛徽章:
0
2 [报告]
发表于 2003-01-15 15:51 |只看该作者

如何实现?

while true
do
  echo "1: vt100\n2: ansi"
  echo "select(1/2):\c"
  read n
  if [ $n -eq 1 ]; then
    export TERM=vt100
    break
else
    if [ $n -eq 2 ]; then
      export TERM=ansi
      break
    else
      echo "illegal selection!"
    fi
  fi
done

当然这段shell需要在当前sh下执行
否则TERM的设置不能生效
即:放在.profile中或者用.执行

论坛徽章:
0
3 [报告]
发表于 2003-01-15 17:12 |只看该作者

如何实现?

老大,我运行了一下,好象有问题?我选了2,但是TERM没改,还是VT100
我的环境是SCO,用的是BSH
以下是调试的结果!
# sh -x setterm
+ true
+ echo 1: vt100\n2: ansi
1: vt100
2: ansi
+ echo select(1/2):\c
select(1/2):+ read n
2
+ [ 2 -eq 1 ]
+ [ 2 -eq 2 ]
+ export TERM=ansi
setterm: TERM=ansi: is not an identifier

论坛徽章:
0
4 [报告]
发表于 2003-01-15 17:18 |只看该作者

如何实现?

告诉你要在当前sh下运行,
不能另起子sh运行

. ./setterm
试试

而且好象sh不支持
export NAME=VALUE的写法
你把它写成两行
NAME=VALUE
export NAME

ksh应该支持在一行的写法

论坛徽章:
0
5 [报告]
发表于 2003-01-15 17:31 |只看该作者

如何实现?

成了,写成俩行是正确的!GOOD LUCK

论坛徽章:
2
15-16赛季CBA联赛之北控
日期:2016-01-19 15:19:55程序设计版块每日发帖之星
日期:2016-01-25 06:20:00
6 [报告]
发表于 2016-01-19 18:19 |只看该作者
#!/bin/bash

  read -p "lease input your choice:" num
  case $1 in
    1) export TERM=vt100 ;;
    2) export TERM=ansi ;;
    *) echo "Usagelease input number 1 or 2"
  esac
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP