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

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

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

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

发表回复

您的电子邮箱地址不会被公开。

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