一、if条件语句的使用格式:
1、单分支语句
if [ 条件 ];then 执行语句 fi
注意:[ 条件 ] :条件与中括号要用空格分割;下面的语句同理。
2、双分支语句
if [ 条件 ];then 执行语句1 else 执行语句2 fi
3、多分支语句
if [ 条件 ];then 执行语句1 elif;then 执行语句2 elif;then 执行语句3 else 执行语句4 fi
退出码: exit
在某些条件判断下,如果不满足该条件,我们必须手动退出程序,否则后面的代码无法执行;
代码正确执行完成后,指定 exit 0 为正确退出码;
代码执行错误时,指定 exit 0-255 之间任意一个数值表示错误退出。
练习:
1、给定一个文件,如果是普通文件,就显示出来,如果是目录文件,也显示出来,否则就显示“无法识别”
#!/bin/bash # read -t 5 -p ("请输入一个文件:") filename # -t 等待时间5秒不输入自动退出 if [ -n $filename ];then echo # 默认用来换行 echo "eg. /etc/fstab" exit 8 fi if [ -f $filename ]; then echo "$filename 是一个普通文件" exit 0 elif [ -d $filename ];then echo "$filename 是一个目录文件" exit 0 else echo "无法识别" exit 1 fi
2、判断当前系统上是否有用户的默认shell程序是否为bash程序,如果有,就显示有多少个这类用户,否则就显示没有这类用户;【并且显示出那些用户是bash】
#!/bin/bash # 判断用户的默认shell程序类型 declare -i sum=`grep "bin/bash$" /etc/passwd | wc -l` #定义一个数值型变量sum if grep "/bin/bash$" /etc/passwd &> /dev/null ; then echo "存在 $sum 个用户,shell程序为/bin/bash" grep "/bin/bash$" /etc/passwd | cut -d: -f1 exit 0 else echo "没有这类用户" exit 1 fi
3、判断某个文件是否存在
#!/bin/bash # 判断文件是否存在 if [ $# -lt 1 ]; then echo "至少需要输入一个传参." exit 1 fi if [ -e $1 ];then echo "存在" else echo "不存在" fi
二、case语句
1、case语句语法格式:
case 变量 in PATTEN1) # PATTERN支持文件统配符 代码块1 ;; PATTEN2) 代码块2 ;; *) 默认执行语句 ;; esac
2、练习
read -p 'Input a number:' Num case $Num in 1) echo 'You select 1' ;; 2) echo 'You select 2' ;; 3) echo 'You select 3' ;; 4|5) echo 'You select 4 or 5' ;; *) echo 'default' ;; esac