免费注册 查看新帖 |

Chinaunix

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

[其他] 如何通过脚本实现icc自动安装 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2013-09-04 14:03 |只看该作者 |倒序浏览
在测试中经常会出现需要首先安装编译环境,比如icc、mpi等,安装过程中会出现一些交互选项,我如何使用脚本一下实现所有的默认安装呢。
举例子如图,在执行mpi的安装过程中,解压后执行install.sh 之后开始mpi安装,它有几步,包含同意协议、选择安装路径等,我不想通过交互模式一步一步的走下去,我希望通过脚本在这一步默认选择1,如何实现?

安装.PNG (10.36 KB, 下载次数: 24)

安装过程图片

安装过程图片

论坛徽章:
39
辰龙
日期:2013-08-21 15:45:192015亚冠之广州富力
日期:2015-05-12 16:34:52亥猪
日期:2015-03-03 17:22:00申猴
日期:2015-03-03 17:21:37未羊
日期:2014-10-10 13:45:41戌狗
日期:2014-06-17 09:53:29巨蟹座
日期:2014-06-12 23:17:17双鱼座
日期:2014-06-10 12:42:44寅虎
日期:2014-06-09 12:52:172015亚冠之卡尔希纳萨夫
日期:2015-05-24 15:24:35黄金圣斗士
日期:2015-12-02 17:25:0815-16赛季CBA联赛之吉林
日期:2017-06-24 16:43:52
2 [报告]
发表于 2013-09-04 14:18 |只看该作者
直接修改install.sh 把这些交互选择都改掉 或者用 expect

论坛徽章:
0
3 [报告]
发表于 2013-09-04 14:28 |只看该作者
谢谢,修改install.sh 就不尝试了,这只是我用来举例的一个工具,实际可能会比较复杂,全部修改脚本,可能就需要动人家所有的安装步骤,还是用expect命令来尝试一下。

论坛徽章:
0
4 [报告]
发表于 2013-09-05 13:51 |只看该作者
我做了尝试,我用写了个脚本mpiinstall.sh 来执行mpi的安装,uninter.sh 用来传递mpi安装过程中的install.sh 下的交互命令参数。提示是
spawn :command not found
couldn‘t  read file “Press  Enter Key to continute or q to quit :”  :no such file or directory
send :command not found
couldn’t read file “eof” :no such file or directory

我写的mpiinstall.sh 和uninter.sh 都在/tmp/test目录下,其中mpiinstall.sh 脚本如下:
#!/bin/sh
cd /tmp/test
tar zxvf l_mpi-rt_p_4.0.2.003.tgz &
wait
cd l_mpi-rt_p_4.0.2.003
sh /tmp/test/uninter.sh

其中uninter.sh 的脚本内容如下:


#!/usr/bin/expect
set timeout 50
spawn sh /tmp/test/l_mpi-rt_p_4.0.2.003/install.sh
expect " Press "Enter" key to continute or "q" to quit:"
send "q"
expect eof
exit

论坛徽章:
145
技术图书徽章
日期:2013-10-01 15:32:13戌狗
日期:2013-10-25 13:31:35金牛座
日期:2013-11-04 16:22:07子鼠
日期:2013-11-18 18:48:57白羊座
日期:2013-11-29 10:09:11狮子座
日期:2013-12-12 09:57:42白羊座
日期:2013-12-24 16:24:46辰龙
日期:2014-01-08 15:26:12技术图书徽章
日期:2014-01-17 13:24:40巳蛇
日期:2014-02-18 14:32:59未羊
日期:2014-02-20 14:12:13白羊座
日期:2014-02-26 12:06:59
5 [报告]
发表于 2013-09-05 14:33 |只看该作者
回复 4# 刘彩霞

1. It's an expect script not a shell script
  and usually we use .exp to identify

expect /tmp/test/uninter.exp

2.  add the \ for special sign in double quote

其中uninter.exp 的脚本内容如下:
#!/usr/bin/expect
...
expect " Press \"Enter\" key to continute or \"q\" to quit:"   
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP