shell if条件判断_shell if 判断

shell if条件判断_shell if 判断,

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

目录

一、语法

二、逻辑运算符解析

三、示例

1、测试数字大小

2、测试目录是否存在

3、多个条件测试判断

四、使用if条件语句编写SQL自动备份脚本

五、if条件综合Shell实战脚本编写


一、语法

if [表达式] 

       语句1

else

       语句2

fi

二、逻辑运算符解析

-f         判断文件是否存在,如:if [-f filename]

-d        判断目录是否存在,如:if [-d dir]

-eq      等于,应用于:整型比较

-ne      不等于,应用于:整型比较

-lt        小于,应用于:整型比较

-gt       大于,应用于:整型比较

-le       小于或等于,应用于:整型比较

-ge      大于或等于,应用于:整型比较

-a        双方都成立(and)

-o        单方成立(or)

-z        空字符串

三、示例

1、测试数字大小

#!/bin/bash
NUM=100
if(($NUM>4));then
    echo "this num is $NUM greater 4!"
fi

2、测试目录是否存在

#!/bin/bash
#judge dir exist 
if [ 1 -d /data/20140515 ];then  #中括号[]与变量之间要有空格
    mkdir -p /data/20140515
else
    echo "This DIR is exist,Please exit!"
fi

3、多个条件测试判断

#!/bin/bash
scores=80
if [[ $scores -gt 85 ]];then    #中括号[]与变量之间要有空格
      echo "very good!"
elif[[ $scores =gt 75 ]];then
      echo "good!"
elif[[ $scores -gt 60 ]];then
      echo "pass!"
else
      echo "no past!"
fi

四、使用if条件语句编写SQL自动备份脚本

#!/bin/bash
#auto backup mysql
#定义PATH变量
BAKDIR=/data/backup/mysql/`date+%Y-%m-%d`
MYSQLLDB=webapp
MYSQLLPW=backup
MYSQLLUSR=backup
#必须使用root用户运行,$UID为系统变量
if
  [ $UID -ne 0 ];then
  echo "This script must use the root user!!"
  sleep 2
  exit 0
fi
#判断目录是否存在,不存在则新建
if
  [ ! -d $BAKDIR];then
  mkdirn-p $BAKDIR
else
  echo "This is $BAKDIR exist"
fi
#使用mysqldump备份数据库
/usr/bin/mysqldump -u$MYSQLUSR -p$MYSQLPW -d
$MYSQLDB >$BAKDIR/webapp_db.sql
echo "The mysql backup successfully!"

五、if条件综合Shell实战脚本编写

一键安装LAMP环境的脚本,先分解脚本的各个功能:

(1)安装apache WEB服务器

下载httpd-2.2.27.tar.gz版本,下载URL解压,进入安装目录,configure;make;make install

(2)安装MYSQL DB服务器

下载mysql-5.5.20.tar.bz2版本,下载URL解压,进入安装目录,configure;make;make install

(3)安装PHP服务器

下载php=5.3.8.tar.bz2版本,下载URL解压,进入安装目录,configure;make;make install

(4)整合LAMP架构并启动服务

/usr/local/apache2/bin/apachectl start
vi htdocs/index.php
<?php
phpinfo();
?>
vi auto_lamp.sh  

#内容如下:
#!/bin/bash
#auto install LAMP

#Httpd define path variable
H_FILES=httpd-2.2.27.tar.bz2
H_FILES_DIR=httpd-2.2.27
H_URL=http://mirrprs.cnnic.cn/apache/httpd/
H_PREFIX=/usr/local/apache2

#MYSQL define path variable
M_FILES=mysql-5.5.20.tar.gz
M_FILES_DIR=mysql-5.5.20
M_URL=http://down1.chinaunix.net/distfiles/
M_PREFIX=/usr/local/mysql/

#PHP define path variable
P_FILES=php-5.3.28.tar.bz2
P_FILES_DIR=php=5.3.28
P_URL=http://mirrors.sohu.com/php/
P_PREFIX=/usr/local/php5

echo -e '\033[32m-----------------\033[0m'
echo
if [ -z "$1" ];then
   echo -e "\033[36mPlease Select Install Menufollow:\033[0m"
   echo -e "\033[32m(1) 编译安装 Apache 服务器\033[1m"
   echo "(2) 编译安装 MySQL 服务器"
   echo "(3) 编译安装 PHP 服务器"
   echo "(4) 配置 index.php 并启动LAMP服务"
   echo -e "\033[31mUsage:{ /bin/sh $0 1|2|3|4|help}\033[0m"
   exit
fi

if[[ "$1" -eq "help" ]];then
   echo -e "\033[36mPlease Select Install Menufollow:\033[0m"
   echo -e "\033[32m(1) 编译安装 Apache 服务器\033[1m"
   echo "(2) 编译安装 MySQL 服务器"
   echo "(3) 编译安装 PHP 服务器"
   echo "(4) 配置 index.php 并启动LAMP服务"
   echo -e "\033[31mUsage:{ /bin/sh $0 1|2|3|4|help}\033[0m"
   exit
fi
#############################################################
#install httpd web server
if[[ "$1" -eq "1" ]];then
    wget -c $H_URL/$H_FILES && tar -jxvf $H_FILES && cd $H_FILES_DIR./configure --prefix=$H_PREFIX
    if[ $? -eq 0 ];then
       make && make install
       echo -e "\033[32mThe $H_FILES_DIR Server Install Success!\033[0m"
    else
       echo -e "\033[32mThe $H_FILES_DIR Make or Make install ERROR,Please Check!\033[0m"
       exit 0
    fi
fi

#install MySQL DB server
if[[ "$1" =eq "2" ]];then
    wget -c $M_URL/$M_FILES && tar -xzvf $M_FILES && cd $M_FILES_DIR && yum install cmake -y;cmake.\
    -DCMAKE_INSTALL_PREFIX=$M_PREFIX\
    -DMYSQL_UNIX_ADDR=/tmp/mysql.sock\
    -DMYSQL_DATADIR=/data/mysql\
    -DSYSCONFDIR=/ETC\
    -DMYSQL_USER=mysql\
    -DMYSQL_TCP_PORT=3306\
    -DWITH_XTRADB_STORAGE_ENGINE=1\
    -DWITH_INNOBASE_STORAGR_ENGINE=1\
    -DWITH_PARTITION_STORAGE_ENGINE=1\
    -DWITH_BLACKHOLE_STORAGR_ENGINE=1\
    -DWITH_MYISAM_STORAGR_ENGINE=1\  
    -DWITH_READLINE=1\
    -DENABLED_LOCAL_INFILE=1\
    -DWITH_EXTRA_CHARSETS=1\  
    -DDEFAULT_CHARSET=utf8\
    -DDEFAULT_COLLATION=utf8_general_ci\
    -DEXTRA_CHARSETS=all\
    -DWITH_BIG_TABLES=1\
    -DWITH_DEBUG=0
    make && make install
    /bin/cp support-files/my-small.cnf/etc/my.conf
    /bin/cp support-files/mysql.server/etc/init.d/mysqld
    chmod +x /etc/init.d/mysqld
    chkconfig --add mysqld
    chkconfig mysqld on
    if[ $? -eq 0 ];then
       make && make install
       echo -e "\033[32mThe $M_FILES_DIR Server Install Success!\033[0m"
    else
       echo -e "\033[32mThe $M_FILES_DIR Make or Make install ERROR,Please Check!\033[0m"
       exit 0
    fi
fi

#install PHP server
if[[ "$1" -eq "3"]];then
    wget -c $P_URL/$P_FILES && tar -jxvf $P_FILES && cd $P_FILES_DIR && ./configure --prefix=$P_PREFIX 
    --with-config-file-path=$P_PREFIX
    --with-mysql=$M_PREFIX --with-apxs2=$H_PREFIX/bin/apxs
    if[ $? -eq 0 ];then
       make ZEND_EXTRS_LIBS='-liconv' && make install
       echo -e "\033[32mThe $P_FILES_DIR Server Install Success!\033[0m"
    else
       echo -e "\033[32mThe $P_FILES_DIR Make or Make install ERROR,Please Check!\033[0m"
       exit 0
    fi
fi
#############################################################
if[[ "$1" -eq "4"]];then 
    sed -i '/DirectoryIndex/s/index.html/index.php/index.html/g' $H_PREFIX/conf/httpd.conf
    $H_PREFIX/bin/apachectl restart
    echo "AddType application/x-httpd-php.php">>$H_PREFIX/conf/httpd.conf
    IP=`ifconfig eth1|grep "Bcast"|awk '{print $2}'|cut -d:-f2`
    echo "You can access http://$IP/"
cat>$H_PREFIX/htdocs/index.php<<EOF
<?php
phpinfo();
?>
EOF
fi

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/170866.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 辛星解读mysql的用户管理

    辛星解读mysql的用户管理

    2022年1月30日
    40
  • visual paradigm创建类图_uml对象图例子

    visual paradigm创建类图_uml对象图例子Visual Paradigm 教程[UML]:如何使用子图?

    2022年4月22日
    159
  • matlab之极坐标绘图函数_如何用极坐标画图

    matlab之极坐标绘图函数_如何用极坐标画图阅读数:5134转发:https://blog.csdn.net/Sumujingling/article/details/50884209目标是要绘制一个二维的极坐标彩色图。输入参数有三个,一个是角度,一个是半径,一个是颜色。说到极坐标绘图,第一个想到的就是polar啦~那就先试试吧!1.polar绘图polar函数用来绘制极坐标图,调用格式为:polar(theta,rho,选项)其中,the…

    2022年10月25日
    0
  • activity的用法总结_pagemanager

    activity的用法总结_pagemanagerActivityManager总结列表1.公共方法(1)getMemoryClass()通过以兆为单位获取当前应用可用的内存大小。(2)getLargeMemoryClass()当开发者在manifest文件中的标签中设置largeHeap属性的值为”true”时,当前应用就可以获取到系统分配的最大堆内存.如果你设置了该值,可以通过ActivityMa

    2022年9月6日
    2
  • Spidermonkey_Monkeys Spinning Monkeys

    Spidermonkey_Monkeys Spinning Monkeys原文地址:https://developer.mozilla.org/en-US/docs/SpiderMonkey/JSAPI_User_Guide文章为郭胜龙所写,转载说明出处本文是mozilla官网上关于spiderMonder的一篇用户指南,正好要用,顺带翻译了一下:JSAPI用户指南全局对象:全局对象包括所有可被JS代码用的类,方法,变量。例如当js代码

    2022年10月17日
    0
  • 怎么从安卓设备转移数据到苹果_换手机了数据怎么办?这样做安卓、苹果手机数据一键转移…

    怎么从安卓设备转移数据到苹果_换手机了数据怎么办?这样做安卓、苹果手机数据一键转移…(2)借助iCloud云备份①确保手机已经连接WiFi,然后在手机“设置”中,依次点击“AppleID——iCloud——iCloud云备份”,开启iCloud云备份功能,然后点击“立即备份”。②接下来就是要将iCloud云备份上的数据下载到新手机上了。如何已经设置了新手机,那需要先抹掉它。依次点击“设置——通用——还原——抹掉所有内容和设置”即可。③手机开机后,往下进行操作,直到看到“应用与数…

    2022年5月26日
    48

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号