linux(七)—shell 条件判断的语句,文件,字符串,数字判断
2021/11/13 7:13:54
本文主要是介绍linux(七)—shell 条件判断的语句,文件,字符串,数字判断,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
1:条件判断语法格式
格式1:test条件表达式
格式2:[ 条件表达式 ]
格式3:[[ 条件表达式 ]] 支持正则 =
注释:通过 man test 查看test表达式的条件判断
2:判断文件类型 (以下是常用)
-e 判断文件是否存在
-f 判断文件是否存在并且是个普通的文件
-d 判断文件是否存在并且是个目录
-L 判断文件是否存在并且是个软连接
-b 判断文件是否存在并且是个设备文件
-S 判断文件是否存在并且是个套接字文件
-c 判断文件是否存在并且是字符设备文件
-p 判断文件是否存在并且是命名管道文件
-s 判断文件是否存在并且是个非空文件(有内容)
2:判断文件权限 (以下是常用)
-r 当前用户是否可读
-w 当前用户对其是否可写
-x 当前用户对其是否可执行
-u 是否有suid 高级权限冒险位
-g 是否sgid 高级权限强制位
-k 是否有t位 高级权限粘滞位 控制删除的
3:判断文件的新旧
file1 -nt file2 比较file1是否比file2新
file1 -ot file2 比较file1是否比file2旧
file1 -ef file2 比较是否为同一个文件 或者用于判断硬连接 是否指向同一个inode 节点
4:判断整数
-eq 相等
-ne 不等
-gt 大于
-lt 小于
-ge 大于等于
-le 小于等于
5:判读字符串
-z 判断是否为空字符串 字符串长度为0则成立
-n 判断是否为非空字符串 字符串长度不为0则成立
str1 = str2 判断字符串是否相等
str1 != str2 判断字符串是否不等
6:多重panduan
-a 和 && 都是 逻辑与
使用 -a [ 1 -eq 1 -a 1 -ne 0 ]
使用 && [ 1 -eq 1 ] && [ 1 -ne 0]
综合实战:
例题1:1:在 /home/shell 文件目录中传教一个 test04 文件目录,
2:在test04目录中 创建 test1.txt 和test2.txt 文件 将二个文件中
3:写入 我是测试test1.txt 和 我是test2.txt
4:在/home/shell 目录中创建 test04.sh
5:编写脚本内容如下:
5.1:输出 test04文件是否存在,
5.2:输出test04 文件存在并且是个目录
5.3:判断test04/test1.txt 是否存在
5.4:判断test04/test2.txt 是否是有内容
5.5:当前用户是否有可执行test04.sh的权限
5.6:比较text1.txt和test2.txt 新旧
5.6:定义2个变量 str1="hellworld" 和str2="hellowold"
判断str1和str2 是否相等
以上脚本内容如下:
#!/bin/env bash # Author:lvdqiang # Desc:测试文件判断 # Using:执行命令1:chmod +x /home/shell/test04.sh # 执行命令2:/home/shell/test04.sh # 判断文件是否存在 echo "-----------判断test04文件是否存在----------" test -e /home/shell/test04 A=$(echo $?) if [ $A -eq 0 ] then echo "存在" else echo "不存在" fi echo "-----------判断test04是否存在并且是个目录----------" test -d /home/shell/test04 B=$(echo $?) if [ $B -eq 0 ] then echo "是目录" else echo "不是目录" fi echo "-----------判断test04/test1.txt是否存在----------" test -f /home/shell/test04/test1.txt C=$(echo $?) if [ $C -eq 0 ] then echo "是存在" else echo "不存在" fi echo "-----------判断test04/test1.txt是否存在内容----------" test -s /home/shell/test04/test1.txt C=$(echo $?) if [ $C -eq 0 ] then echo "是存在" else echo "不存在" fi echo "-----------判断test04/test2.txt是否存在内容----------" test -s /home/shell/test04/test2.txt C=$(echo $?) if [ $C -eq 0 ] then echo "是存在" else echo "不存在" fi echo "-----------判断test04.sh是否有执行权限----------" test -x /home/shell/test04.sh C=$(echo $?) if [ $C -eq 0 ] then echo "是存在" else echo "不存在" fi echo "-----------判断test1.txt是否比test2.txt新----------" test /home/shell/test04/test1.txt -nt /home/shell/test04/test2.txt C=$(echo $?) if [ $C -eq 0 ] then echo "新" else echo "不新" fi str1="hellworld" str2="helloworld" echo "-----------str1="hellworld" 和str2="hellowold" 判断str1和str2 是否相等----------" test str1 = str2 C=$(echo $?) if [ $C -eq 0 ] then echo "相等" else echo "不相等" fi
以上执行结果如下图:
这篇关于linux(七)—shell 条件判断的语句,文件,字符串,数字判断的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-12如何创建可引导的 ESXi USB 安装介质 (macOS, Linux, Windows)
- 2024-11-08linux的 vi编辑器中搜索关键字有哪些常用的命令和技巧?-icode9专业技术文章分享
- 2024-11-08在 Linux 的 vi 或 vim 编辑器中什么命令可以直接跳到文件的结尾?-icode9专业技术文章分享
- 2024-10-22原生鸿蒙操作系统HarmonyOS NEXT(HarmonyOS 5)正式发布
- 2024-10-18操作系统入门教程:新手必看的基本操作指南
- 2024-10-18初学者必看:操作系统入门全攻略
- 2024-10-17操作系统入门教程:轻松掌握操作系统基础知识
- 2024-09-11Linux部署Scrapy学习:入门级指南
- 2024-09-11Linux部署Scrapy:入门级指南
- 2024-08-21【Linux】分区向左扩容的方法