1、流程控制过程
(1)格式一
if [ 条件判断一 ] && (||) [ 条件判断二 ]; then 命令一 elif [ 条件判断三 ] && (||) [ 条件判断四 ]; then 命令二 else 执行其它 fi
(2)格式二
if [条件判断一 -a (-o) 条件判断二 -a (-o) 条件判断三]; then elif [条件判断三 -a (-o) 条件判断四 ]; then else 执行其它 fi
(3)格式三
if [[条件判断一 && (||) 条件判断二 ]]; then elif [[ 条件判断三 && (||) 条件判断四 ]]; then else 执行其它 fi
2、shell实例
(1)判断文件类型
[root@test shell]# cat file-check.sh #!/bin/bash read -p "请输入一个文件名:" file #接收键盘输入并赋予变量 file。 if [ -z "$file" ] #判断 file 变量是否为空。 then echo "请输入一个文件名" #如果为空,输出报错信息。 elif [ ! -e "$file" ] #判断 file 的值是否存在。 then echo "你输入的文件不存在" #如果不存在,输出此信息。 elif [ -f "$file" ] #判断 file 的值是否为普通文件。 then echo "$file 是一个普通文件" #如果是普通文件输出此信息。 elif [ -d "$file" ] #判断 file 是否是目录文件。 then echo "$fiel是一个目录" #如果是目录文件输出此信息。 else #如果都不是则执行本程序。 echo "$file是其他文件" #都不是的话输出此信息。 fi [root@test shell]# sh file-check.sh 请输入文件名称:file-check.sh file-check.sh 是一个普通文件 [root@test shell]#
(2)判断学生成绩优劣
[root@test ~]# cat cj-check.sh #!/bin/bash read -p "请输入考试成绩:" cj if [ $cj -ge 0 ] && [ $cj -le 59 ];then echo "差" elif [ $cj -ge 60 ] && [ $cj -le 70 ]; then echo "中" elif [ $cj -ge 71 ] && [ $cj -le 85 ]; then echo "良" elif [ $cj -ge 86 ] && [ $cj -le 100 ]; then echo "优" else echo "成绩有效范围0-100" fi [root@test ~]# sh cj-check.sh 请输入考试成绩:85 良 [root@test ~]#
(3)mysql备份
[root@test ~]# vim mysqlbak.sh #!/bin/bash baknamefile=`date +%Y-%m-%d` bakdir=/mysqlbak user=root password=123 dbname=webdb [ -e $bakdir ] || mkdir $bakdir mysqldump -u$user -p$password --flush-logs $dbname > $bakdir/${baknamefile}-webdb.sql [root@test ~]# crontab -e 0 3 * * * /root/etcbak.sh 2>&1 > /dev/null
个人公众号: