20.5-20.8 shell脚本中的if逻辑判断、文件目录属性判断、if特殊用法、case判断
来源:互联网 发布:淘宝卖家账号怎么注销 编辑:程序博客网 时间:2024/06/05 17:25
- 5 shell脚本中的if逻辑判断
- 逻辑判断表达式
- if逻辑判断格式
- if逻辑判断例子
- 6 文件目录属性判断
- 文件目录属性判断
- 例子
- 7 if特殊用法
- if特殊用法
- 例子
- 8209 case判断
- case判断格式
- 在case中可以在条件中使用表示或的意思如
- 例子 输入一个同学的分数判断成绩是否及格优秀
- 运行结果
- 5 shell脚本中的if逻辑判断
20.5 shell脚本中的if逻辑判断
Shell脚本中,充满着各种逻辑判断,是脚本中必备的。
逻辑判断表达式:
-gt (>); 大于 great than-lt(<); 小于 less than-ge(>=); 大于或等于 -le(<=); 小于或等于-eq(==); 等于 equal-ne(!=) 不等于 not equa- - -例如if [ $a -gt $b ]; if [ $a -lt 5 ]; if [ $b -eq 10 ]等
if逻辑判断格式
格式1:if 条件 ; then 语句; fi格式2:if 条件; then 语句; else 语句; fi格式3:if …; then … ;elif …; then …; else …; fi- - -可以使用 && || 结合多个条件条件A&&条件B:A并且B条件A||条件B:A或者Bif [ $a -gt 5 ] && [ $a -lt 10 ]; thenif [ $b -gt 5 ] || [ $b -lt 3 ]; then
if逻辑判断例子
格式1:if 条件 ; then 语句; fi
#!/bin/basha=5if [ $a -gt 3 ]#注意[]里面有大量空格then echo "ok"fi
格式2:if 条件; then 语句; else 语句; fi
#!/bin/basha=5if [ $a -gt 3 ]then echo "ok"else echo "nook"fi
格式3:if …; then … ;elif …; then …; else …; fi
#!/bin/basha=3if [ $a -gt 4 ]then echo ">1"elif [ $a -gt 6 ]#注意elif可以嵌套多次的then echo "<6 && >1"else echo "nook"fi
20.6 文件目录属性判断
在shell中通常要和文件或者目录打交道,那么对于他们的属性判断十分重要。
文件目录属性判断
[ -f file ]判断是否是普通文件,且存在 [ -f /usr/bin/grep ][ -d file ] 判断是否是目录,且存在 [ -d /tmp/mydir ][ -e file ] 判断文件或目录是否存在 [ -e /var/log/syslog ][ -r file ] 判断文件是否可读 [ -r /var/log/syslog ][ -w file ] 判断文件是否可写 [ -w /var/mytmp.txt ][ -x file ] 判断文件是否可执行 [ -x /usr/bin/grep ]
例子
#!/bin/bashf="/tmp/zhouquniclinux"if [ -e $f ]then echo $f existelse touch $f
上例可以简化为
#!/bin/bash[ -e $f ] || touch $f[ ! -e $f ] || echo $f exist # || 当前面的执行成功后再执行后面的命令# 如果是&&,则不管前面的命令是否执行成功,都会执行后面的命令# ! 表示取反
20.7 if特殊用法
if特殊用法
if [ -z "$a" ] 这个表示当变量a的值为空时会怎么样if [ -n "$a" ] 表示当变量a的值不为空if grep -q '123' 1.txt; then 表示如果1.txt中含有'123'的行时会怎么样if [ ! -e file ]; then 表示文件不存在时会怎么样if (($a<1)); then …等同于 if [ $a -lt 1 ]; then… [ ] 中不能使用<,>,==,!=,>=,<=这样的符号
例子
if [ -z “$a” ] 这个表示当变量a的值为空时会怎么样
#!/bin/bashn='wc -l /tmp/lalala'if [ $n -lt 100 ]then echo "line num less than 100"fi# 如果/tmp/lalala文件为空,或者被删除的话,脚本就会运行出错,出现bug应该加上一个判断条件#!/bin/bashn='wc -l /tmp/lalala'if [ $n -z "$n" ]# [ $n -z "$n" ] = [ ! $n -n "$n" ],-z 和 -n 是一对相反的条件then echo "error" exitelif [ $n -lt 100 ]then echo "line num less than 100"fi或者#!/bin/bashif [ ! -f /tmp/lalala ]then echo "/tmp/lalala is not exist" exitfin='wc -l /tmp/lalala'if [ $n -lt 100 ]then echo "line num less than 100"fi
if [ -n “$a” ] 表示当变量a的值不为空,也可以判断文件,判断文件时可以不加双引号
if [ -n 01.sh ]; then echo "ok"; fi另外#!/bin/bashif [ -n "$b" ]then echo $belse echo "b is null"fi
一条命令也可以作为判断条件。判断user1用户是否存在
if grep -wq 'user1' /etc/passwd; then echo "user1 is exist"; else echo "user1 is not exist"; fi#grep -w 显示过滤信息,加-q可以不显示过滤信息
20.8/20.9 case判断
case判断格式
case 变量名 in value1) commond1 ;; value2) commod2 ;; value3) commod3 ;;esac
在case中,可以在条件中使用“|”,表示或的意思,如:
2|3) commond ;;
例子: 输入一个同学的分数,判断成绩是否及格,优秀。
[root@localhost sbin]# vim case1.sh#!/bin/bashread -p "Please input a number: " n# read -p 是读取用户的输入数据,定义到变量里面if [ -z "$n" ]then echo "Please input a number." exit 1#“exit 1”表示非正常运行导致退出程序#退出之后,echo $?会返回1值,表示程序退出是因为出错了fin1=`echo $n|sed 's/[0-9]//g'`#判断用户输入的字符是否为纯数字#如果是数字,则将其替换为空,赋值给$n1if [ -n "$n1" ]thenecho "Please input a number."exit 1#判断$n1不为空时(即$n不是纯数字)再次提示用户输入数字并退出fi#如果用户输入的是纯数字则执行以下命令:if [ $n -lt 60 ] && [ $n -ge 0 ]then tag=1elif [ $n -ge 60 ] && [ $n -lt 80 ]then tag=2elif [ $n -ge 80 ] && [ $n -lt 90 ]then tag=3elif [ $n -ge 90 ] && [ $n -le 100 ]then tag=4else tag=0fi#tag的作用是为判断条件设定标签,方便后面引用case $tag in 1) echo "not ok" ;; 2) echo "ok" ;; 3) echo "ook" ;; 4) echo "oook" ;; *) echo "The number range is 0-100." ;;esac
运行结果
[root@host shell]# sh case1.shPlease input a number: 45not ok[root@host shell]# sh case1.shPlease input a number: 66ok[root@host shell]# sh case1.shPlease input a number: 80ook[root@host shell]# sh case1.shPlease input a number: 99oook[root@host shell]# sh case1.shPlease input a number: xxxPlease input a number.[root@host shell]# echo $?1[root@host shell]# sh case1.shPlease input a number: 120The number range is 0-100.[root@host shell]# echo $?0
阅读全文
0 0
- 20.5-20.8 shell脚本中的if逻辑判断、文件目录属性判断、if特殊用法、case判断
- shell 脚本if 逻辑判断判断
- shell脚本if判断文件
- Shell中的if和case判断语句
- shell中的if判断
- shell中的if判断
- shell中的if判断
- shell中的if判断
- shell脚本中的if判断条件 详解
- shell脚本中的 if 判断总结
- shell脚本-if内判断
- shell脚本----if判断条件
- shell 脚本之if判断
- shell脚本中if判断
- shell条件判断二 (if、case)
- Shell---判断(if)和分支(case)
- shell中if逻辑判断的常见用法
- Linux shell中的if判断
- Nginx + Tomcat + HTTPS 配置不需要在 Tomcat 上启用 SSL 支持
- 5.Java变量
- 无线网络安全之ARP欺骗攻击
- 1075. PAT Judge (25)
- Maven项目集合Memcached框架
- 20.5-20.8 shell脚本中的if逻辑判断、文件目录属性判断、if特殊用法、case判断
- Android自定义View——从零开始实现水波浪进度框
- JVM调优
- .NET开发人员的完美.gitignore文件
- unityshader shaderforge 轮廓内发光
- 03-树3 Tree Traversals Again(25 分)
- PyCharm 2017 免费 破解 注册 激活 教程(附 License Server 地址)(Python 编辑器 IDE 推荐)
- Cookie
- spring+struts2