
正文
Linux--shel的if判断语句--05
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
一、if条件语句的使用格式:
1、单分支语句
if [ 条件 ];then
执行语句
fi
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 -p ("请输入一个文件:") filename # -t 等待时间5秒不输入自动退出
if [ -n $filename ];then
echo # 默认用来换行
echo "eg. /etc/fstab"
exit
fi if [ -f $filename ]; then
echo "$filename 是一个普通文件"
exit
elif [ -d $filename ];then
echo "$filename 是一个目录文件"
exit
else
echo "无法识别"
exit
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
else
echo "没有这类用户"
exit
fi
3、判断某个文件是否存在
#!/bin/bash
# 判断文件是否存在
if [ $# -lt ]; then
echo "至少需要输入一个传参."
exit
fi if [ -e $ ];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
) echo 'You select 1'
;;
) echo 'You select 2'
;;
) echo 'You select 3'
;;
|) echo 'You select 4 or 5'
;;
*) echo 'default'
;;
esac
case 变量 in
PATTEN1) # PATTERN支持文件统配符
代码块1
;;
PATTEN2)
代码块2
;;
*)
默认执行语句
;;
esac
read -p 'Input a number:' Num
case $Num in
) echo 'You select 1'
;;
) echo 'You select 2'
;;
) echo 'You select 3'
;;
|) echo 'You select 4 or 5'
;;
*) echo 'default'
;;
esac






