Shell编程之条件语句
2021/7/21 7:06:17
本文主要是介绍Shell编程之条件语句,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
结构
条件测试
-
文件测试与整数测试
-
字符串测试与逻辑测试
if语句
-
if单分支语句
-
if双分支语句
-
if多分支语句
case分支语句
条件测试操作
test命令
测试表达式是否成立,若成立则返回0,否则返回其他数值。
格式1:test 条件表达式 格式2:[ 条件表达式 ]
文件测试
[ 操作符 文件或目录 ]
常用的测试操作符
文件比较运算符-e filename | 如果filename存在,则为真 | [ -e /var/log/syslog ] |
-d filename | 如果filename为目录,则为真 | [ -d /tmp/mydir ] |
-f filename | 如果filename为常规文件,则为真 | [ -f /usr/bin/grep ] |
-L filename | 如果filename为符号链接,则为真 | [ -L /usr/bin/grep ] |
-r filename | 如果filename可读,则为真 | [ -r /var/log/syslog ] |
-w filename | 如果filename可写,则为真 | [ -w /var/mytmp.txt ] |
-x filename | 如果filename可执行,则为真 | [ -L /usr/bin/grep ] |
filename1 -nt filename2 | 如果filename1比filename2新,则为真 | [ /tmp/install/etc/services -nt /etc/services ] |
filename1 -ot filename2 | 如果filename1比filename2旧,则为真 | [ /boot/bzlmage -ot arch/i386/boot/bzlmage ] |
[root@localhost ~]# [ -e first.sh ] [root@localhost ~]# echo $? 0 [root@localhost ~]# [ -e first1.sh ] [root@localhost ~]# echo $? 1
整数值比较
[ 整数1 操作符 整数2 ]
常用的测试操作符
算术比较运算符num1 -eq num2 | 等于 | [ 3 -eq $mynum ] |
num1 -ne num2 | 不等于 | [ 3 -ne $mynum ] |
num1 -lt num2 | 小于 | [ 3 -lt $mynum ] |
num1 -le num2 | 小于或等于 | [ 3 -le $mynum ] |
num1 -gt num2 | 大于 | [ 3 -gt $mynum ] |
num1 -ge num2 | 大于或等于 | [ 3 -ge $mynum ] |
字符串比较
格式1:[ 字符串1 = 字符串2 ] [ 字符串1 != 字符串2 ]
格式2:
[ -z 字符串 ]
常用的测试操作符
- =:字符串内容相同
- !=:字符串内容不同, !号表示相反的意思
- -z:字符串内容为空
-z string | 如果string长度为零,则为真 | [ -z "$myvar" ] |
-n string | 如果string长度非零,则为真 | [ -n "$myvar" ] |
string1 = string2 | 如果string1与string2相同,则为真 | [ "$myvar" = "one two three" ] |
string1 != string2 | 如果string1与string2不同,则为真 | [ "$myvar" != "one two three" ] |
示例
####测试当前语言环境 [root@localhost ~]# echo $LANG zh_CN.UTF-8 [root@localhost ~]# [ $LANG != "en.US" ] && echo "Not en.US" Not en.US [root@localhost ~]#
逻辑测试
格式1:[ 表达式1 ] 操作符 [ 表达式2 ] …
格式2:
命令1 操作符 命令2 …
常用的测试操作符
- -a或&&:逻辑与,“而且”的意思
- -o或||:逻辑或,“或者”的意思
- !:逻辑否
if语句的结构
单分支结构
if 条件测试操作 then 命令序列 fi
多分支结构
if 条件测试操作1 then 命令序列1 elif 条件测试操作2 then 命令序列2 else 命令序列3 fi
实例
判断分数所在区间,反馈不同的结果
#!/bin/bash read -p "input score:" nums if [ $nums -ge 90 ];then echo "exellent" elif [ $nums -ge 80 ];then echo "well done" elif [ $nums -ge 70 ];then echo "not very well" elif [ $nums -ge 60 ];then echo "not good" else echo "bad" fi
case语句结构
-
case多分支结构
case 变量值 in 模式1) 命令序列1 ;; 模式2) 命令序列2 ;; …… *) 默认命令序列 esac
总结
条件测试的语法
-
文件测试、整数值比较、字符串比较、逻辑测试
if条件语句的语法
-
单分支、双分支、多分支
case多分支语句的语法
这篇关于Shell编程之条件语句的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-12-27OpenFeign服务间调用学习入门
- 2024-12-27OpenFeign服务间调用学习入门
- 2024-12-27OpenFeign学习入门:轻松掌握微服务通信
- 2024-12-27OpenFeign学习入门:轻松掌握微服务间的HTTP请求
- 2024-12-27JDK17新特性学习入门:简洁教程带你轻松上手
- 2024-12-27JMeter传递token学习入门教程
- 2024-12-27JMeter压测学习入门指南
- 2024-12-27JWT单点登录学习入门指南
- 2024-12-27JWT单点登录原理学习入门
- 2024-12-27JWT单点登录原理学习入门