最近写自动安装脚本遇到redis-server安装的时候,需要输入3个回车,对此尝试无果,最后google比较满意的解决办法:

shell 脚本需要交互,比如输入回车,输入YES/NO Y/N之类进行选择

Linux 中shell脚本运行时经常需要进行交互,比如安装软件的过程中对license声明的确认,需要输入yes,回车之类的确认信息。这个在自动化安装的时候就会是个问题。

1、通常对于这个问题比较灵活的解决方法就是TCL的Expect。但Expect还需要另外安装,平台通用性不高,比较麻烦。

2、另外一些简单的方法倒也是有,不过可用性不高,特别是对要求多次交互就吃力了。但怎么说其还是能解决大多数的问题,因为复杂的情况还是比较少的。

比如要一个调用一个安装脚本 : installWAS.sh, 这个脚本要求输入回车,

则可以:echo | installWAS.sh;如果要求输入yes|no,加回车,则可以

echo yes|installWAS.sh. 这下自动化安装就有希望了。

再有一下的代码也可以带来一些思路:

[0 No.2015 huan@huan ~/tmp]$ cat foo

read -s -n1 -p "Press any key to continue ... "

echo "Your inputs: $REPLY"

[0 No.2016 huan@huan ~/tmp]$ ./foo < /dev/null

Your inputs:

[0 No.2017 huan@huan ~/tmp]$

最后具体实现:

[root@localhost opt]# cat cache.sh

#!/bin/bash

yum install -y gcc-c++ tcl

cd /opt

#cache

wget http://download.redis.io/releases/redis-3.0.0.tar.gz

#------------------------------------------------------------------------------------#

#编译源程序

tar xf redis-3.0.0.tar.gz

cd redis-3.0.0

make && cd src && make install

cd /opt/redis-3.0.0/utils

echo | /bin/bash install_server.sh

mv /etc/redis/6379.conf /etc/redis/redis.conf

mv /etc/init.d/redis_6379 /etc/init.d/redis

sed -i "s@6379.conf@redis.conf@" /etc/init.d/redis

sed -ine "65s/# bind 127.0.0.1/bind 0.0.0.0/" /etc/redis/redis.conf

sed -ine "393 i\requirepass Bs123456A" /etc/redis/redis.conf

#默认情况下,redis不是在后台运行的,我们需要把开启的redis后台运行,将daemonize的值改为yes

echo "vm.overcommit_memory=1">>/etc/sysctl.conf

sysctl -p

[root@localhost opt]#

如何在Python脚本中调用外部命令(就像在linux shell或Windows命令提示符下输入一样)

如何在Python脚本中调用外部命令(就像在linux shell或Windows命令提示符下输入一样) python标准库中的subprocess可以解决这个问题. from subprocess ...

Linux Shell编程中的几个特殊符号命令 &amp&semi; 、&amp&semi;&amp&semi; 、 &vert;&vert;

https://blog.csdn.net/hack8/article/details/39672145 Linux Shell编程中的几个特殊符号命令 & .&& . || ...

Linux shell脚本中shift

Linux shell脚本中shift的用法说明 shift命令用于对参数的移动(左移),通常用于在不知道传入参数个数的情况下依次遍历每个参数然后进行相应处理(常见于Linux中各种程序的启动脚本). ...

Linux shell脚本中shift的用法说明【转】

本文转载自:http://blog.csdn.net/zhu_xun/article/details/24796235 Linux shell脚本中shift的用法说明 shift命令用于对参数的移动 ...

linux shell执行方式

linux shell执行有两种方式 shell脚本以#!/bin/bash开头,执行shell时先检查首行,在内部以下列方式执行: $/bin/bash script.sh 1. 使用sh执行. $ ...

学习Linux shell脚本中连接字符串的方法

这篇文章主要介绍了Linux shell脚本中连接字符串的方法,如果想要在变量后面添加一个字符,可以用一下方法: 代码如下: $value1=home $value2=${value1}"= ...

Linux shell命令中expr

在Linux shell命令中expr虽然不是很起眼,但是它的作用是非常大的!到目前为止,我个人看来最大的作用就是两个——四则运算和字符串的操作. 先说四则运算,在Shell中四则运算不能简简单单的加 ...

linux shell脚本中的延时

linux shell脚本中的延时 还是使用 sleep 或usleep函数. 详细如下:     .sleep : 默认为秒. sleep 1s 表示延迟一秒   sleep 1m 表示延迟一分钟 ...

linux shell 执行命令顺序

1.shell命令搜索顺序 在linux shell 中输入一个命令,如果有多个同名指令,shell需要按照一定规则去取优先级高的一个执行,shell命令的搜索顺序为: 1.别名,使用alias创建的 ...

随机推荐

iOS开源项目、框架资源

总结的 iOS.Mac开源项目.库.知识点:http://www.open-open.com/lib/view/open1442664670352.html

然并卵,腾讯QQ认证空间又再次关闭申请

昨天发布的腾讯QQ认证空间又开放申请的消息,此消息一放出,大家都去关注认证的事情,而马浩周发现在4月27日下午4-5点,腾讯QQ空间认证又再次关闭页面开放申请的通知,变成了以前停止审核的通知了. 可能 ...

c&num;第三方控件地址

原文:http://blog.csdn.net/wpcxyking/article/details/6249825 首先感谢博文原者,分享这么有价值的内容,特此感谢. DevExpress 出品 Dx ...

《SQL Server企业级平台管理实践》读书笔记——几个系统库的备份与恢复

master数据库 master作为数据库的主要数据库,记录着SQL Server系统的所有系统级信息,例如登录用户.系统配置设置.端点和凭证以及访问其他数据服务器所需要的信息.master数据库还记 ...

Natas Wargame Level 13 Writeup(文件上传漏洞,篡改file signature,Exif)

aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAqMAAADDCAYAAAC29BgbAAAABHNCSVQICAgIfAhkiAAAIABJREFUeF

strace -&gt&semi; System call tracer

我只想告诉你一件事: strace 可以让你知道程序调用了哪些syscall.

THE DEFINITIVE GUIDE TO DEBUGGING JAVASCRIPT

FIGURING OUT WHERE THE ERROR COULD BE READ THE CODE USING THE CONSOLE THE CHROME DEV TOOLS THE DEBUG ...

CMakeLists

#cmake最低版本需求,不加入此行会受到警告信息CMAKE_MINIMUM_REQUIRED(VERSION 2.6)PROJECT(HELLO) #项目名称#把当前目录(.)下所有源代码文件和头文 ...

Redis for linux安装配置之—-源码安装

一‘redis单实例安装配置1.下载redis源码压缩包,并将其上传至服务器/usr/local2.解压redis源码压缩包  # tar -xzvf redis-3.2.12.tar.gz3.进入r ...

&period;NET Core微服务之路:基于gRPC服务发现与服务治理的方案

重温最少化集群搭建,我相信很多朋友都已经搭建出来,基于Watch机制也实现了出来,相信也有很多朋友有了自己的实现思路,但是,很多朋友有个疑问,我API和服务分离好了,怎么通过服务中心进行发现呢,这个过 ...

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐