1.3 Shell脚本编程基础之条件测试
2018-10-30 12:41
881 查看
判断某需求是否满足,需要由测试机制来实现,专用的测试表达式需要由测试命令辅助完成测试过程
评估布尔声明,以便用在条件性执行中• 若真,则返回0 • 若假,则返回1
测试命令:
• test EXPRESSION • [ EXPRESSION ] • [[ EXPRESSION ]] 注意:EXPRESSION前后必须有空白字符
注意: 表达式一般用于[[ ]]中
bash的数值测试
-v VAR
变量VAR是否设置
数值测试:
-gt 是否大于 -ge 是否大于等于 -eq 是否等于 -ne 是否不等于 -lt 是否小于 -le 是否小于等于
bash的字符串测试
用于字符测试中的操作数应该使用双引号标识。
字符串测试:
= 是否等于 > ascii码是否大于ascii码 < 是否小于 != 是否不等于 =~ 左侧字符串是否能够被右侧的PATTERN所匹配
注意: 此表达式一般用于[[ ]]中;扩展的正则表达式
-z "STRING“ 字符串是否为空,空为真,不空为假 -n "STRING“ 字符串是否不空,不空为真,空为假
注意:用于字符串比较时的用到的操作数都应该使用引号
文件存在性测试
-e FILE: 文件存在性测试,存在为真,否则为假 -b FILE:是否存在且为块设备文件 -c FILE:是否存在且为字符设备文件 -d FILE:是否存在且为目录文件 -f FILE:是否存在且为普通文件 -h FILE 或 -L FILE:存在且为符号链接文件 -p FILE:是否存在且为命名管道文件 -S FILE:是否存在且为套接字文件
[root@CentOS7 ~]# [ -e /etc/passwd ] && echo exist exist
权限测试
-r FILE:是否存在且可读 -w FILE: 是否存在且可写 -x FILE: 是否存在且可执行 -u FILE:是否存在且拥有suid权限 -g FILE:是否存在且拥有sgid权限 -k FILE:是否存在且拥有sticky权限
[root@CentOS7 ~]# [ -u /bin/passwd ] && echo SUID SUID
双目标测试
FILE1 -ef FILE2: FILE1是否是FILE2的硬链接 FILE1 -nt FILE2: FILE1是否新于FILE2(比较mtime) FILE1 -ot FILE2: FILE1是否旧于FILE2 #!/bin/bash #判断参数文件是否是“.sh”后缀的文件,是的话添加执行权限 [ -f $1 -a ! -x $1 ] || { echo "$1 not is a file"; exit; } echo "$1" | grep ".*[.]sh$" >> /dev/null [ $? -eq 0 ] \ && { chmod +x $1; echo "Set up!"; } \ || echo "$1 not is a script"
相关文章推荐
- Linux新手生存笔记[9]——shell脚本基础2-条件测试及控制流
- #7 shell脚本编程之bash运算和条件测试命令
- shell脚本编程之条件判断,算术运算,整数测试及特殊变量
- 第9课shell脚本基础2-条件测试及控制流
- Shell脚本编程——条件测试
- shell脚本编程之条件测试和判断
- Shell脚本基础 、 使用变量 、 条件测试及选择 、 列表式循环
- 测试基本功-Shell脚本编程基础教程
- Shell脚本编程概述(一):算数运算和条件测试
- Linux新手生存笔记[9]——shell脚本基础2-条件测试及控制流
- shell脚本编程之条件测试——test
- LinuxShell脚本编程基础4-条件测试与条件判断
- shell脚本编程基础知识
- Shell脚本(2)之条件测试和流程控制
- Shell脚本之测试及条件表达式简述
- Shell 脚本基础 - 使用 if 语句进行条件检测
- NO4.Shell脚本学习——Shell条件测试和流程控制
- 《游戏脚本的设计与开发》-1.3 基础语法(注释,变量,函数,条件语句)
- 【Shell 编程基础第二部分】Shell里的流程控制、Shell里的函数及脚本调试方法!
- Shell脚本编程入门(1)条件判断