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
时间: 2024-11-10 16:41:01