首页 > 代码库 > if 脚本条件判断式

if 脚本条件判断式

1、单一的条件判断式:

    语法:

if [ 条件判断式 ]; then
    当条件判断式成立时,可以进行的指令工作内容;
fi                             //将if反过来写,就是结束if之意!

  

  && 代表 AND 
  || 代表 or 

forexample:

#!/bin/bash
set -x                          //进行查错功能
#program;
#    This program shows the user‘s choice
#History:
#2017/06/21 likui First release
PATH=/bin:/sbin:/uer/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:/bin
export PATH

read -p "Please input (Y/y)" yn

if [ "$yn" == "Y" ] || [ "$yn" = "y" ]; then
    echo "OK,continue"                  //if 和 if 之间添加我们需要的代码
    exit 0
fi

if [ "$yn" == "N" ] || [ "$yn" == "n" ]; then
    echo "Oh,interrupt!"
    exit 0
fi

echo "I don‘t know what your choice is "

 

2、多重、复杂条件判断式

  语法1:

 

# 一个条件判断,分成功进行与失败进行 (else)
if [ 条件判断式 ]; then     当条件判断式成立时,可以进行的指令工作内容 else     当条件判断式不成立时,可以进行的指令工作内容 fi

  语法2:

# 多个条件判断 (if ... elif ... elif ... else) 分多种不同情况执行
if [ 条件判断式一 ]; then     当条件判断式一成立时,可以进行的指令工作内容 elif [ 条件判断式二 ]; then     当条件判断式二成立时,可以进行的指令工作内容 else     当条件判断式一与二均不成立时,可以进行的指令工作内容; fi

forexample1:

  技术分享

forexample2:

技术分享

forexample3:

#!/bin/bash
# Program:
#  You input your demobilization date, I calculate how many days
#  before you demobilize.
# History:
# 2005/08/29  VBird  First release
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~
/bin
export PATH
# 1. 告知用户这支程序的用途,并且告知应该如何输入日期格式?
echo "This program will try to calculate :"
echo "How many days before your demobilization date..."
read -p "Please input your demobilization date (YYYYMMDD ex>20090401):
" date2
# 2. 测试一下,这个输入的内容是否正确?利用正规表示法啰~
date_d=$(echo $date2 |grep [0-9]\{8\}) # 看看是否有八个数字
if [ "$date_d" == "" ]; then
  echo "You input the wrong date format...."
  exit 1
fi
# 3. 开始计算日期啰~
declare -i date_dem=`date --date="$date2" +%s` # 退伍日期秒数
declare -i date_now=`date +%s` # 现在日期秒数
declare -i date_total_s=$(($date_dem-$date_now)) # 剩余秒数统计
declare -i date_d=$(($date_total_s/60/60/24)) # 转为日数
if [ "$date_total_s" -lt "0" ]; then # 判断是否已退伍
  echo "You had been demobilization before: " $((-1*$date_d)) "
  ago"
else
declare -i
date_h=$(($(($date_total_s-$date_d*60*60*24))/60/60))
  echo "You will demobilize after $date_d days and $date_h hours."
fi

 

if 脚本条件判断式