免费注册 查看新帖 |

Chinaunix

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

read命令读入用户输入时,怎样可以从另一个文件中读入结果? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2004-11-04 17:23 |只看该作者 |倒序浏览
有一个安装程序file1,运行时会出许多问题提示需用户输入的,部分代码如下:
        note()
            {
                local temp
                read temp
                ans=$temp
             }

             note "lease input the path to install:"
             aaa=$temp

             note "lease input the username:"
             bbb=$temp

             note "lease input .... :"
             ccc=$temp
             .....

程序用read命令,收集用户的输入,对变量temp赋值,返回后再传给相应的变量,然后再继续下一个问题。
现在需要再写一个shell程序实现此过程的全自动输入,即把所需要填写的问题的答案都写入一个文件file2(安装中所会提示的问题已知,假设答案都是固定的),
#cat file2
answer1(对应安装程序file1的问题1)
answer2(对应安装程序file1的问题2)
answer3(对应安装程序file1的问题3)
.....

现需要写另一个shell程序,实现此过程的自动化,即不需要用户一步步把答案输入,当提示输入一个问题的答案时,就直接从file2文件里读出相应的答案,请问可以怎样实现呢?

论坛徽章:
1
荣誉会员
日期:2011-11-23 16:44:17
2 [报告]
发表于 2004-11-04 17:46 |只看该作者

read命令读入用户输入时,怎样可以从另一个文件中读入结果?

echo -n "question1:"
read q1
echo -n "question2:"
read q2
echo -n "question3:"
read q3
echo $q1 $q2 $q3 >file2

论坛徽章:
0
3 [报告]
发表于 2004-11-05 10:01 |只看该作者

read命令读入用户输入时,怎样可以从另一个文件中读入结果?

可能是我说得不是很清楚,上面这个代码实现的是当用户输入了问题的答案q1、q2、q3后把这三个答案放入了file2文件,但我需要实现的是当提出问题1,即read q1,不需要用户从键盘中输入答案,而是直接从file2文件中读出答案,各个问题的答案已经事先写进file2文件了,file2文件里一行对应file1运行时的一个问题,即
#cat file2
q1
q2
q3
...(这些已事先输好的了的问题答案 )

#./file1
question1:  (这里希望能不需要用户输入,直接读出file2中的第一行q1)
question2:  (读出file2中的第二行q2)
.....

这个有办法实现吗?先谢谢各位了!

论坛徽章:
1
荣誉会员
日期:2011-11-23 16:44:17
4 [报告]
发表于 2004-11-05 10:50 |只看该作者

read命令读入用户输入时,怎样可以从另一个文件中读入结果?

如果是这样,read还有什么用?!

论坛徽章:
0
5 [报告]
发表于 2004-11-05 11:56 |只看该作者

read命令读入用户输入时,怎样可以从另一个文件中读入结果?

用read的那个文件是它原有的,

现在是想看有没办法写另一个程序实现自动的输入,有办法吗?

论坛徽章:
1
荣誉会员
日期:2011-11-23 16:44:17
6 [报告]
发表于 2004-11-05 11:59 |只看该作者

read命令读入用户输入时,怎样可以从另一个文件中读入结果?

这样试试看,如:
echo -n "question1:"
q1=$(sed -n 1p file2)
...
P.S:没测试

论坛徽章:
0
7 [报告]
发表于 2004-11-05 12:35 |只看该作者

read命令读入用户输入时,怎样可以从另一个文件中读入结果?

[quote]原帖由 "寂寞烈火"]如果是这样,read还有什么用?![/quote 发表:

说的就是阿,还read什么阿?


answer1=`cat ./file2 |awk NR==1`
answer2=`cat ./file2 |awk NR==2`
answer3=`cat ./file2 |awk NR==3`
answer4=`cat ./file2 |awk NR==4`
...
echo $answer1 $answer2 $answer3 $answer4 ...

论坛徽章:
0
8 [报告]
发表于 2004-11-05 14:16 |只看该作者

read命令读入用户输入时,怎样可以从另一个文件中读入结果?

谢谢两位,我这就去试试!
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP