linux中的shell编程之条件判断if语句
1、单分支if语句语法一:if [ 条件判断式 ];then程序fi语法二:if [ 条件判断式子 ]then程序fi实例1:判断登录的用户是否是某个账号#!/bin/bash# 判断登录的用户是否是fz# cut 以某种方式按照文件的行进行分割# -d自定义分割符,默认为制表符# -f 与-d一起使用,指定显示哪个区域。...
·
1、单分支if语句
语法一:
if [ 条件判断式 ];then
程序
fi
语法二:
if [ 条件判断式子 ]
then
程序
fi
实例1:判断登录的用户是否是某个账号
#!/bin/bash
# 判断登录的用户是否是fz
# cut 以某种方式按照文件的行进行分割
# -d自定义分割符,默认为制表符
# -f 与-d一起使用,指定显示哪个区域。
test=$(env | grep "USER" | cut -d "=" -f 2)
if [ "$test" == fz ]
then
echo "Current user is fz."
fi
运行结果为:
实例2:判断分区使用率
#!/bin/bash
# 用来判断sda2这个盘的使用率
# 注意awk命令及cut命令的用法及区别,务必熟练
test=$(df -h | grep sda2 | awk '{print $5}' | cut -d "%" -f 1)
if [ $test -ge 8 ];then
echo "/ is full"
fi
运行结果如下:
2、双分支if语句
# 双分支if条件语句
if [ 条件判断式 ]
then
条件成立时,执行的语句
else
条件不成立时,执行另外一段语句
fi
实例1:判断输入的是否是一个目录
#!/bin/bash
read -t 30 -p "Please input a dir: " dir
if [ -d "$dir" ]
then
echo "shuru de shi mulu"
else
echo "no no no"
fi
运行结果为:
实例2:判断Apache服务是否打开了
#!/bin/bash
# 判断Apache服务是否打开了
# 暂时先不做这个例子,等学linux网络服务时再下载Apache
3、多分支if语句
if [ 条件判断式1 ]
then
当条件判断式1成立时,执行程序1
elif [ 条件判断式2 ]
then
当条件判断式2成立时,执行程序2
...省略更多条件...
else
当所有条件都不成立时,最后执行此程序
fi
实例1:写个计算器的程序
#!/bin/bash
# 字符界面加减乘除计算器
read -t 30 -p "Please input num1: " num1
read -t 30 -p "Please input num2: " num2
#通过read命令接收要计算的数值,并赋予变量num1和num2
read -t 30 -p "Please input a operator: " ope
#通过read命令接收要计算的符号,并赋予变量ope
if [ -n "$num1" -a -n "$num2" -a -n "$ope" ]
# 第一层判断,用来判断num1、num2和ope中都有值
then
test1=$(echo $num1 | sed 's/[0-9]//g')
test2=$(echo $num2 | sed 's/[0-9]//g')
#定义变量test1和test2的值为$(命令)的结果
#后续命令作用是,把变量test1的值替换为空。如果能替换为空,证明num1的值为数字
#如果不能替换为空,证明num1的值为非数字。我们使用这种方法判断变量num1的值为数字
#用同样的方法测试test2变量
if [ -z "$test1" -a -z "$test2" ]
#第二层判断,用来判断num1和num2为数值
#如果变量test1和test2的值为空,则证明num1和num2是数字
then
#如果test1和test2是数字,则执行一下命令
if [ "$ope" == '+' ]
#第三层判断用来确认运算符
#测试变量$ope中是什么运算符
then
sum=$(($num1+$num2))
#如果是加号则执行加法运算
elif [ "$ope" == '-' ]
then
sum=$(($num1-$num2))
#如果是减号,则执行减法运算
elif [ "$ope" == '*' ]
then
sum=$(($num1*$num2))
elif [ "$ope" == '/' ]
then
sum=$(($num1/$num2))
else
echo "Please enter a valid symbol"
#如果运算符不匹配,提示输入有效的符号
exit 10
#并退出程序,返回错误代码10
fi
else
#如果test1和test2,说明num1和num2不是数值
echo "Please enter a valid value"
#则提示输入有效的数值
exit 11
#并退出程序,返回错误代码11
fi
else
echo "请输入内容!!!"
exit 12
fi
echo " $num1 $ope $num2: $sum"
#输出数值运算的结果
实例2:判断用户输入的是什么文件
#!/bin/bash
read -t 30 -p "Please input a filename: " file
if [ -z "$file" ]
then
echo "请输入内容"
exit 11
elif [ ! -e "$file" ]
then
echo "请输入文件名"
exit 12
elif [ -f "$file" ]
then
echo "$file是一个普通文件"
elif [ -d "$file" ]
then
echo "$file是一个目录"
else
echo "$file是其他类型的文件"
fi
更多推荐
已为社区贡献1条内容
所有评论(0)