zoukankan      html  css  js  c++  java
  • shell脚本批量执行命令----必需判断上一步执行结果--没有捷径

    # 注意:shell脚本批量执行命令,不能只写一个函数,然后把所有命令复制进去,之前试过这样是不行的。必须要有一个判断命令执行成功与否的语句
    # 简单的命令可以不加结果判断符号,但是遇到解压包、sed 的命令就不往下执行了。测试过
    
    实例1、
    
    shell脚本批量开启防火墙端口
    
    [mysql@www ~]$ cat firewall.sh 
    #!/bin/bash
    func1(){
        firewall-cmd --zone=public --add-port=10050/tcp --permanent
        [ $? -eq 0 ] firewall-cmd --zone=public --add-port=10051/tcp --permanent
        [ $? -eq 0 ] firewall-cmd --zone=public --add-port=9000/tcp --permanent
        [ $? -eq 0 ] firewall-cmd --zone=public --add-port=3306/tcp --permanent
        [ $? -eq 0 ] firewall-cmd --zone=public --add-port=80/tcp --permanent
        [ $? -eq 0 ] firewall-cmd --zone=public --add-port=8083/tcp --permanent
        [ $? -eq 0 ] firewall-cmd --zone=public --add-port=22/tcp --permanent
        [ $? -eq 0 ] firewall-cmd --zone=public --add-port=32250/tcp --permanent
        [ $? -eq 0 ] firewall-cmd --reload
    }
    
    func1
    
    sudo ./firewall.sh > /dev/null    #这个sudo就相当于脚本里面所有命令行写上了sudo
    
    
    
    实例2、
    
    # shell脚本安装python、pip
    
    首先把pip-18.0.tar.gz 、Python-3.6.5.tgz 安装包放在 /usr/local 下面,按照顺序先安装pip,再安装python。不要先安装或只安装python,否则很容易出错,
    
    [root@bogon ~]# cat pip-python.sh 
    #!/bin/bash
    func1(){
        yum -y groupinstall "Development tools"
        [ $? -eq 0 ] && 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 0 ] && echo "安装完成pip"
    }
    
    func3(){
        cd /usr/local/ && tar -zxvf Python-3.6.5.tgz && mv Python-3.6.5 python3 && cd python3 && ./configure && make && make install
        [ $? -eq 0 ] && mv /usr/bin/python /usr/bin/python.bak
        [ $? -eq 0 ] && ln -s /usr/local/bin/python3 /usr/bin/python && ln -s /usr/local/python3/bin/pip3 /usr/bin/pip3
        [ $? -eq 0 ] && whereis pip && /usr/local/bin/pip3.6 install --upgrade pip && /usr/local/bin/pip install paramiko
        [ $? -eq 0 ] && sed -i "1c #!/usr/bin/python2.7" /usr/bin/yum
        [ $? -eq 0 ] && sed -i "1c #!/usr/bin/python2.7" /usr/libexec/urlgrabber-ext-down
        [ $? -eq 0 ] && sed -i "1c #!/usr/bin/python2.7" /usr/sbin/firewalld
        [ $? -eq 0 ] && sed -i "1c #!/usr/bin/python2.7" /usr/sbin/firewalld
        [ $? -eq 0 ] && systemctl restart firewalld
        [ $? -eq 0 ] && 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
        1)
            func1;;
        2)
            func2;;
        3)
            func3;;
        4)
            exit;;
        *)
            echo "choice error"
        esac
    done
  • 相关阅读:
    Tomcat7,Tomcat8 的manager 配置
    JavaScript 获得当前日期+时间
    CentOS 安装jdk 1.8
    nginx文件结构与解析,例子
    jxl解析多个excel工作表-java代码
    一个上传图片,预览图片的小demo
    利用DES,C#加密,Java解密代码
    CentOS安装Nginx
    摄像机标定--很懒的方法
    slam-g2o安装失败的解决问题
  • 原文地址:https://www.cnblogs.com/effortsing/p/9981892.html
Copyright © 2011-2022 走看看