shell脚本批量执行命令----必需判断上一步执行结果--没有捷径
- # 注意:shell脚本批量执行命令,不能只写一个函数,然后把所有命令复制进去,之前试过这样是不行的。必须要有一个判断命令执行成功与否的语句
- # 简单的命令可以不加结果判断符号,但是遇到解压包、sed 的命令就不往下执行了。测试过
- 实例1、
- shell脚本批量开启防火墙端口
- [mysql@www ~]$ cat firewall.sh
- #!/bin/bash
- func1(){
- firewall-cmd --zone=public --add-port=/tcp --permanent
- [ $? -eq ] firewall-cmd --zone=public --add-port=/tcp --permanent
- [ $? -eq ] firewall-cmd --zone=public --add-port=/tcp --permanent
- [ $? -eq ] firewall-cmd --zone=public --add-port=/tcp --permanent
- [ $? -eq ] firewall-cmd --zone=public --add-port=/tcp --permanent
- [ $? -eq ] firewall-cmd --zone=public --add-port=/tcp --permanent
- [ $? -eq ] firewall-cmd --zone=public --add-port=/tcp --permanent
- [ $? -eq ] firewall-cmd --zone=public --add-port=/tcp --permanent
- [ $? -eq ] firewall-cmd --reload
- }
- func1
- sudo ./firewall.sh > /dev/null #这个sudo就相当于脚本里面所有命令行写上了sudo
- 实例2、
- # shell脚本安装python、pip
- 首先把pip-18.0.tar.gz 、Python-3.6..tgz 安装包放在 /usr/local 下面,按照顺序先安装pip,再安装python。不要先安装或只安装python,否则很容易出错,
- [root@bogon ~]# cat pip-python.sh
- #!/bin/bash
- func1(){
- yum -y groupinstall "Development tools"
- [ $? -eq ] && yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel
- }
- func2(){
- yum remove pip -y && cd /usr/local/ && tar -xf pip-18.0.tar.gz && cd pip-18.0/ && python setup.py install
- [ $? -eq ] && echo "安装完成pip"
- }
- func3(){
- cd /usr/local/ && tar -zxvf Python-3.6..tgz && mv Python-3.6. python3 && cd python3 && ./configure && make && make install
- [ $? -eq ] && mv /usr/bin/python /usr/bin/python.bak
- [ $? -eq ] && ln -s /usr/local/bin/python3 /usr/bin/python && ln -s /usr/local/python3/bin/pip3 /usr/bin/pip3
- [ $? -eq ] && whereis pip && /usr/local/bin/pip3. install --upgrade pip && /usr/local/bin/pip install paramiko
- [ $? -eq ] && sed -i "1c #!/usr/bin/python2.7" /usr/bin/yum
- [ $? -eq ] && sed -i "1c #!/usr/bin/python2.7" /usr/libexec/urlgrabber-ext-down
- [ $? -eq ] && sed -i "1c #!/usr/bin/python2.7" /usr/sbin/firewalld
- [ $? -eq ] && sed -i "1c #!/usr/bin/python2.7" /usr/sbin/firewalld
- [ $? -eq ] && systemctl restart firewalld
- [ $? -eq ] && echo "安装完成python"
- }
- #脚本菜单函数
- menu(){
- clear
- echo "# 1. 安装依赖包"
- echo "# 2. 安装pip"
- echo "# 3. 安装python"
- echo "# 4. 退出程序"
- }
- #功能选择函数
- choice(){
- read -p "Please choice a menu[1 2 3 4]:" select
- }
- #程序开始
- while true
- do
- menu
- choice
- case $select in
- )
- func1;;
- )
- func2;;
- )
- func3;;
- )
- exit;;
- *)
- echo "choice error"
- esac
- done
shell脚本批量执行命令----必需判断上一步执行结果--没有捷径的更多相关文章
- shell脚本批量ssh登陆主机并执行命令
shell脚本批量ssh登陆主机并执行命令 今天在客户现场遇到了这个问题,客户没有管理工具,无法批量登陆主机下发命令,几个个C段啊,让我一个一个登陆,.................. 所以写了个s ...
- centos shell脚本编程1 正则 shell脚本结构 read命令 date命令的用法 shell中的逻辑判断 if 判断文件、目录属性 shell数组简单用法 $( ) 和${ } 和$(( )) 与 sh -n sh -x sh -v 第三十五节课
centos shell脚本编程1 正则 shell脚本结构 read命令 date命令的用法 shell中的逻辑判断 if 判断文件.目录属性 shell数组简单用法 $( ) 和$ ...
- shell脚本批量开启防火墙端口
# 注意:shell脚本批量执行命令,不能只写一个函数,然后把所有命令复制进去,之前试过这样是不行的.必须要有一个判断命令执行成功与否的语句 # 简单的命令可以不加结果判断符号,但是遇到解压包.sed ...
- linux系统配置文件或shell脚本批量注释
1. 配置文件批量注释 1.1 批量注释 ① 进入命令行模式,按ctrl + v进入 visual block模式,键盘上下箭头选中多行,把需要注释的行标记起来 ② 按大写字母I,再输入注释符:# ③ ...
- shell脚本一条命令直接发送http请求(xjl456852原创)
我们知道nc命令是一个网络工具.可以连接tcp/udp.也能模拟发送http请求. 现在介绍通过shell脚本,一条命令直接发送http请求. 命令如下,可以对下面的地址等信息自行修改: #!/bin ...
- shell脚本中sqlite3命令查询数据库失败返回空,并将错误信息打印到标准错误输出
shell脚本中sqlite3命令查询数据库失败返回空,并将错误信息打印到标准错误输出 如: #/bin/sh local ret='sqlite3 test.db "select test ...
- Linux shell脚本 批量创建多个用户
Linux shell脚本 批量创建多个用户 #!/bin/bash groupadd charlesgroup for username in charles1 charles2 charles3 ...
- Shell 脚本批量创建数据库表
使用 Shell 脚本批量创建数据表 系统:Centos6.5 64位 MySQL版本:5.1.73 比如下面这个脚本: #!/bin/bash #批量新建数据表 for y in {0..199}; ...
- (转)shell脚本之seq命令
shell脚本之seq命令 原文:http://blog.csdn.net/paoxiaohui/article/details/52830595 seq 用于生成从一个数到另一个数之间的所有整数. ...
随机推荐
- 一份令人愉快的vs代码包和资源的整理清单
https://viatsko.github.io/awesome-vscode/ https://github.com/viatsko/awesome-vscode
- 一、XML DOM、XMLDocument
一.XML DOM概述 XML 文档大小写敏感.属性用引号括起来,每一个标记都要闭合. DOM是XML文档的内存中树状的表示形式. 继承关系图: XmlNode;//XML节点 ......XmlDo ...
- Java锁--CyclicBarrier
转载请注明出处:http://www.cnblogs.com/skywang12345/p/3533995.html CyclicBarrier简介 CyclicBarrier是一个同步辅助类,允许一 ...
- MySql更改用户密码
1. use mysql show tables;查看mysql数据库中的表,会看到一个user表. select * from user;查看一下这个表中是否有root用户,如果有: update ...
- [51Nod 1237] 最大公约数之和 (杜教筛+莫比乌斯反演)
题目描述 求∑i=1n∑j=1n(i,j) mod (1e9+7)n<=1010\sum_{i=1}^n\sum_{j=1}^n(i,j)~mod~(1e9+7)\\n<=10^{10}i ...
- 搭建gitlab服务
安装依赖 sudo yum install curl policycoreutils openssh-server openssh-clients sudo systemctl enable sshd ...
- java+下载+大文件断点续传
java两台服务器之间,大文件上传(续传),采用了Socket通信机制以及JavaIO流两个技术点,具体思路如下: 实现思路:1.服:利用ServerSocket搭建服务器,开启相应端口,进行长连接操 ...
- 齿轮 HYSBZ - 4602 (DFS实现)
齿轮 HYSBZ - 4602 题意:很好理解就不啰嗦了. 致谢:感谢队友小明. 题解:嗯,一开始想到的是并查集,后来,就先看了另一道题,xj写dfs和暴力,就卡死了.于是来补这题了,前向星建图 题解 ...
- 页面嵌套iframe时,怎样让iframe高度根据自身内容高度自适应
总体思路是这样的,因为iframe里页面的内容是动态加载的,而且电脑屏幕宽度发生变化时,也得相应的去改变iframe标签的高度(如果高度确定就不用这么麻烦了): 首先,我们在父页面中定义一个方法,用来 ...
- lightgbm用于排序
一. LTR(learning to rank)经常用于搜索排序中,开源工具中比较有名的是微软的ranklib,但是这个好像是单机版的,也有好长时间没有更新了.所以打算想利用lightgbm进行排序, ...