shell简单命令与if语句,从这里开始shell的学习之路
Posted 丁CCCCC
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了shell简单命令与if语句,从这里开始shell的学习之路相关的知识,希望对你有一定的参考价值。
各种测试
一、条件测试
概述
- Shell环境根据命令执行($?)后的返回状态值来判断是否执行成功
- 当返回值为0 (真true) 时表示成功
- 返回值为非0值(假false)时表示失败或异常
1.1 文件测试
格式
- [ 操作符 文件或者目录 ]
- echo $?
- 查看执行的结果
常用操作符
操作符 | 作用 | 全称 |
---|---|---|
-d | 测试是否为目录 | Directory |
-e | 测试目录或文件是否存在 | Exist |
-f | 测试是否为文件 | File |
-r | 测试当前用户是否有权限读取 | Read |
-w | 测试当前用户是否有权限写入 | Write |
-x | 测试当前用户是否有权限执行 | EXcute |
-l | 测试是否为符号链接 | Link |
测试
-
-d
-
-x
1.2 整数值比较
格式
[ 整数1 操作符 整数2 ]
常用操作符
操作符 | 作用 | 全称 |
---|---|---|
-eq | 等于 | Equal |
-ne | 不等于 | Not Equal |
-gt | 大于 | Greater Than |
-lt | 小于 | Lesser Than |
-le | 小于等于 | Lesser or Equal |
-ge | 大于等于 | Greater or Equal |
测试
- [root@ccc ~]# a=$(who | wc -l)
- 使用变量名a获得参数
- [root@ccc ~]# [ $a -gt 5 ] && echo “yes” || echo “no”
- 主机数是否大于5
- no
- 得出结果
- 得出结果
1.3 字符串比较
格式
格式一
- [ 字符串1 = 字符串2 ]
- [ 字符串1 != 字符串2 ]
格式二
- [ -z 字符串 ]
常用的操作符
操作符 | 作用 |
---|---|
= | 字符串内容相同 |
!= | 字符串内容不同,! 表示相反 |
-z | 字符串内容为空 |
测试
1.4 逻辑测试
格式
格式一
- [ 表达式1 ] 操作符 [ 表达式2 ]
格式二
- 命令1 操作符 命令2
常用的操作符
操作符 | 作用 |
---|---|
-a或&& | 逻辑与, “而且” 的意思 |
-o或 丨丨 | 逻辑或,“或者” 的意思 |
! | 逻辑否 |
二、if语句的结构
2.1 单分支结构
模板
#!/bin/bash
if [ 10 -gt 5 ] # 条件测试操作
then # 条件成立
echo ok # 命令序列
fi # 结束
2.2 双分支结构
模板
#!/bin/bash
netstat -natup | grep ":80" # 搜索80端口
if [ $? -eq 0 ] # 条件测试操作
then # 条件成立
echo "网站服务正常" # 命令序列
else # 条件不成立
echo "启动httpd服务" # 命令序列
yum install -y httpd > /dev/null
systemctl start httpd
fi # 结束
2.3 多分支结构
模板
#!/bin/bash
read -p "请输入你的学号:" score
if [ $score -gt 0 -a $score -lt 100 ] # 条件测试操作1
then
echo "一组" # 命令序列
elif [ $score -ge 100 -a $score -lt 200 ] # 条件测试2
then
echo "二组" # 命令序列
elif [ $score -ge 200 -a $score -lt 300 ] # 条件测试3
then
echo "三组" # 命令序列
else
echo "学号错误"
fi
2.4 case多分支结构
模板
#!/bin/bash
read -p "请输入你的学号:" score
[ $score -gt 0 -a $score -lt 100 ] && a=10
[ $score -ge 100 -a $score -lt 200 ] && a=20
[ $score -ge 200 -a $score -lt 300 ] && a=30
case $a in
10)
echo "一组"
;;
20)
echo "二组"
;;
30)
echo "三组"
;;
*)
echo "不存在的学号!"
esac
以上是关于shell简单命令与if语句,从这里开始shell的学习之路的主要内容,如果未能解决你的问题,请参考以下文章