linux中sql脚本换⾏,linuxshell执⾏中需要交互输⼊回
车,YesNOYN
最近写⾃动安装脚本遇到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
#------------------------------------------------------------------------------------#
#编译源程序
tar xf redis-3.0.
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/f /etc/f
mv /etc/init.d/redis_6379 /etc/init.d/redis
sed -i "f@" /etc/init.d/redis
sed -ine "65s/# bind 127.0.0.1/bind 0.0.0.0/" /etc/f
sed -ine "393 i\requirepass Bs123456A" /etc/f
#默认情况下,redis不是在后台运⾏的,我们需要把开启的redis后台运⾏,将daemonize的值改为yes
echo "vm.overcommit_memory=1">>/f
sysctl -p
[root@localhost opt]#
如何在Python脚本中调⽤外部命令(就像在linux shell或Windows命令提⽰符下输⼊⼀样)
如何在Python脚本中调⽤外部命令(就像在linux shell或Windows命令提⽰符下输⼊⼀样) python标准库中的subprocess可以解决这个问题. from subprocess ...
Linux Shell编程中的⼏个特殊符号命令 &; 、&;&; 、 ||
Linux shell脚本中shift
Linux shell脚本中shift的⽤法说明 shift命令⽤于对参数的移动(左移),通常⽤于在不知道传⼊参数个数的情况下依次遍历每个参数然后进⾏相应处理(常见于Linux中各种程序的启动脚本). ...
Linux shell脚本中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开源项⽬、框架资源
然并卵,腾讯QQ认证空间⼜再次关闭申请
昨天发布的腾讯QQ认证空间⼜开放申请的消息,此消息⼀放出,⼤家都去关注认证的事情,⽽马浩周发现在4⽉27⽇下午4-5点,腾讯QQ空间认证⼜再次关闭页⾯开放申请的通知,变成了以前停⽌审核的通知了. 可能 ...
c&num;第三⽅控件地址
《SQL Server企业级平台管理实践》读书笔记——⼏个系统库的备份与恢复
master数据库 master作为数据库的主要数据库,记录着SQL Server系统的所有系统级信息,例如登录⽤户.系统配置设置.端点和凭证以及访
问其他数据服务器所需要的信息.master数据库还记 ...
Natas Wargame Level 13 Writeup(⽂件上传漏洞,篡改file signature,Exif)
aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAqMAAADDCAYAAAC29BgbAAAABHNCSVQICAgIfAhkiAAAIABJREF
strace ->; System call tracer
我只想告诉你⼀件事: strace 可以让你知道程序调⽤了哪些syscall.
THE DEFINITIVE GUIDE TO DEBUGGING JAVASCRIPT
shell最简单脚本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.3.进⼊r ...
.NET Core微服务之路:基于gRPC服务发现与服务治理的⽅案
重温最少化集搭建,我相信很多朋友都已经搭建出来,基于Watch机制也实现了出来,相信也有很多朋友有了⾃⼰的实现思路,但是,很多朋友
有个疑问,我API和服务分离好了,怎么通过服务中⼼进⾏发现呢,这个过 ...
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论