红联Linux门户
Linux帮助

请教一个shell编程问题

发布时间:2008-12-09 20:02:32来源:红联作者:rosemead
我想用bash脚本实现个批处理 就是运行这个脚本可以一次启动几个相关的程序 但其中有一个程序带有个select菜单选项,需要在它启动时输入数字选择一下,我想在bash脚本里给它完成选择赋值 那样就不必每次启动脚本时再选择了 这个该怎么写

说得具体一点 我在宿舍上网时由于学校的网络管理,需要启动一个客户端,名字叫upnet,我在Konsole或gnome terminal里打upnet后回车,它接下来显示一个菜单选择项,如 1)XXXXXXXXXXXXX 状,我要在输入 1 它才能通过客户端完成网络登录,然后我再输入firefox回车,就可以启动浏览器上网了

那么我想把这一系列操作用一个叫www.bash的bash脚本来实现
比如写成
#!/bin/bash
upnet
firefox

显然这样因为没有完成对upnet的菜单赋值不能一步到位,那么在这种情况下如何在脚本里对 upnet 的菜单选项赋值,而实现一运行www.bash不用再干预就完成客户端登录并打开firefox呢?
文章评论

共有 9 条评论

  1. wang7131984 于 2009-02-28 21:25:08发表:

    使用重定向
    upnet < myoption.txt
    在myoption.txt中写入你需要的选项如:
    1
    1
    ...
    这样你就可以任意多的选择了,注意到实际上LINUX内部很多程序就是这么实现的。这个myoption.txt就是你的配置文件

  2. nxlinux 于 2009-02-28 19:42:34发表:

    具体如何实现2次选择??????????

  3. heiyie 于 2009-02-28 10:21:02发表:

    管道

  4. Icewizard 于 2009-02-21 20:54:04发表:

    select var in...;do也可以吧!!

  5. markus 于 2009-02-02 23:00:35发表:

    用<<自动选择菜单,今天看书刚好看到这个了

  6. karon_fedora 于 2009-02-02 16:50:30发表:

    ==..

  7. rosemead 于 2008-12-10 21:40:02发表:

    就这个问题再向各位大虾请教,上面说的是upnet给出一次菜单选择,用上面所说的管道方法可行,如果这个upnet运行时会给出两次菜单选择,该如何实现? 莫非要用 echo “第一次的选择参数” “第二次的选择参数” | upnet 么? 可以我写了个需要两次选择的脚本,用上述方法不能实现,事实是只对第一次菜单选择有效,如何在脚本里对两次菜单选择赋值?

  8. rosemead 于 2008-12-09 21:12:24发表:

    原来是用管道来实现 实验成功运行 谢谢啦

  9. my8827780 于 2008-12-09 20:40:23发表:

    加入你要选择1选项 可以直接写:
    echo 1 | upnet