条件测试操作和条件测试语句

条件测试操作和条件测试语句

$?:条件判断,失败或者成功,真或者假 true false
shell脚本:0为真,true,执行成功,所有的非0都是假 false,执行失败

条件测试的命令:

格式一:
test 操作符 条件表达式
操作符:
-e exist 测试目录或者文件是否存在
-d 测试是否为目录
-f 测试是否是文件
-r 测试当前用户是否有读权限
-w 测i试当前用户是否有写权限
-x 测试当前用户是否有执行权限

test也可以

test也可以进行数值和字符串比较
字符串比较,比较的是内容是否一致
常用的比较符:
注意:以下比较符只能用于比较整数:
-eq 等于
-ne 不等于
-gt 大于
-lt 小于
-le 小于等于
-ge 大于等于
第二个写法:
==
!= > < >= <=

第二种格式:
[ 条件表达式 ]

第三种方式:
[[ 条件表达式 ]] 双中括号的写法比[]的功能更加强大,可以避免歧义的出现。而且双中括号可以支持正则表达式。

逻辑测试的表达语句:-a或者&& 逻辑且 前后的条件都要成立
-o或者|| 逻辑或 前后成立一个即可
! 逻辑否 取反

定位:1:17:00
if语句:
单分支结构:
if [ 条件测试语句 ]
then
命令序列
fi
双分支结构:
if [ 条件测试语句 ]
then
命令序列
else
命令序列
fi

课堂测试

我有3个ip地址,以位置变量的方式传参,ping通的打印可以通,保存到/opt/host.txt,不通的要打印ping不通
#!/bin/bash
ping -c 3 $1
if [ $? -eq 0 ]
then
echo “$1 online”
$1 >> /opt/hosts
else
echo “$1 is offline”
fi

#!/bin/bash
read -p “请输入一个数字:” num
if [ $ num -gt 10 ]
then
echo " $ num大于10"
echo “$num” > /opt/nim.txt
else
echo “比10小”
fi

#!/bin/bash
read -p “请输入一个数字:” num
if [[ $ num%2 == -eq 0 ]]
then
echo “$num是偶数”
else
echo “是奇数”
fi

#!/bin/bash
read -p “输入成绩:” cj
if [ $cj -eq $cj ]
then
if [[ $cj -ge 85 && $cj -le 100 ]]
then
echo “优秀”
elif [[ $cj -ge 70 && $cj -le 84 ]]
then
echo “一般”
elif [[ $cj -ge 60 && $cj -le 69 ]]
then
echo “及格”
else
echo “15遍”
fi
else
echo “你输入的不是一个整数”
fi

if [条件表达式 ]
then
命令序列
elif [ 条件表达式 ]
then
命令序列
else
命令序列
fi

定位:2:50:00
if的嵌套语句:
if []
if []

if判断的case语句:

case 变量值 in
模式1)
命令序列
;;
模式2)
命令序列
;;
*)
命令序列
esac

1.检查用户家目录中的 test.sh 文件是否存在,并且检查是否有执行权限
#!/bin/bash
read -p “请输入文件名:” file
if [[ KaTeX parse error: Expected 'EOF', got '&' at position 22: …= "test.sh" ]] &̲>/dev/null then…file && -x ~/$file ]]
then
echo “文件存在,并且具有执行权限”
else
echo “文件存在,但不具有执行权限”
else
“文件不存在,请确认输入是否正确!”
fi

2.提示用户输入100米赛跑的秒数,要求判断秒数大于0且小于等于10秒的进入选拔赛,大于10秒的都淘汰,
如果输入其它字符则提示重新输入;进入选拔赛的成员再进一步判断男女性别。
男生进男生组,女生进女生组,如果输入错误请提示错误(整数判断,小数判断。9.72 3.21 )
#!/bin/bash
read -p “请输入秒数:” s
if ! [[ s =   [ 0 − 9 ] + s =~ ^[0-9]+ s= [09]+ ]] &> /dev/null
then
echo “输入错误!请输入整数!”
exit 1
fi
if [[ $s -gt 0 && $s -le 10 ]]
then
read -p “请输入性别:” gender
if [[ $gender == “male” ]]
then
echo “恭喜你!进入男生组选拔赛!”
elif [[ $gender == “female” ]]
then
echo “恭喜你!进入女生组选拔赛!”
else
echo “输入错误!”
fi
else
echo “淘汰!”
fi

3.用case语句解压根据后缀名为 .tar.gz 或 .tar.bz2 的压缩包到 /opt 目录
tar -zxvf tar -jxvf
#!/bin/bash
read -p"请输入文件名:" file
case “$ file” in
*,tar.gz )
tar -zxvf “$ file” -C /opt
;;
*.tar .bz2 )
tar -jxvf “$file” -C /opt
;;
*)
echo"错误:无法识别该文件类型!"
;;
esac

4.提示用户输入内容,使用if 语句判断输入的内容是否为整数。判断范围0-100。
#!/bin/bash
read -p “请输入1-100以内的整数:” num
if [[ $ num =~ ^ [0-9]+$ ]]
then
if [[ $ num -ge 1 && $num -le 100 ]]
then
echo " $num"
else
echo “输入的整数不属于1-100范围内”
fi
else
echo “输入错误!请输入整数!”
fi

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值