当前位置: 首页 > news >正文

Shell脚本之if的用法

Shell脚本之if的用法

    • 1、if语句的格式
    • 2、if语句的conditon介绍
    • 3、应用举例

1、if语句的格式

1) if-elif-else语法格式

if [ condition1 ]; then  # 执行条件1的代码块  
elif [ condition2 ]; then  # 执行条件2的代码块  
else  # 执行条件都不满足时的代码块  
fi

2) if-else语法格式

if [ condition ]; then  # 执行条件的代码块  
else  # 执行条件不满足时的代码块  
fi

3) if语法格式

if [ condition ]; then  # 执行条件的代码块  
fi

2、if语句的conditon介绍

1)字符串比较

=:检测两个字符串是否相等,相等返回 true。例如,[ "$a" = "$b" ]。
!=:检测两个字符串是否不相等,不相等返回 true。例如,[ "$a" != "$b" ]。
-z:检测字符串长度是否为0,为0返回 true。例如,[ -z "$a" ]。
-n:检测字符串长度是否不为 0,不为 0 返回 true。例如,[ -n "$a" ]。
":检测字符串是否不为空,不为空返回 true。例如,[ "$a" ]。

2)文件存在性检查

-f:检查文件是否存在,存在返回 true。例如,[ -f "file.txt" ]。
-d:检查目录是否存在,存在返回 true。例如,[ -d "dir" ]。
-e:检查文件或目录是否存在,存在返回 true。例如,[ -e "file.txt" ]。

3)数值比较

-eq:检查两个数是否相等,相等返回 true。例如,[ $num -eq $anotherNum ]。
-ne:检查两个数是否不相等,不相等返回 true。例如,[ $num -ne $anotherNum ]。
-lt:检查第一个数是否小于第二个数,小于返回 true。例如,[ $num -lt $anotherNum ]。
-gt:检查第一个数是否大于第二个数,大于返回 true。例如,[ $num -gt $anotherNum ]。
-le:检查第一个数是否小于等于第二个数,小于等于返回 true。例如,[ $num -le $anotherNum ]。
-ge:检查第一个数是否大于等于第二个数,大于等于返回 true。例如,[ $num -ge $anotherNum ]。

3、应用举例

1)根据条件执行不同的代码块:if命令允许你根据给定的条件执行不同的代码块。你可以使用比较运算符(如-eq、-ne、-lt、-gt、-le、-ge)和逻辑运算符(如-a、-o、!)来构建条件表达式。根据条件的结果,你可以选择执行特定的代码块。

if [ $num -gt 10 ]; then  echo "数字大于10"  
elif [ $num -lt 10 ]; then  echo "数字小于10"  
else  echo "数字等于10"  
fi

2)检查文件或目录是否存在:使用if命令可以检查文件或目录是否存在,然后根据结果执行相应的操作

if [ -f "file.txt" ]; then  echo "文件存在"  
else  echo "文件不存在"  
fi

3)检查两个字符串是否相等:使用if命令可以比较两个字符串是否相等,并根据结果执行相应的操作

if [ "$str1" = "$str2" ]; then  echo "字符串相等"  
else  echo "字符串不相等"  
fi

4)检查变量是否为空:使用if命令可以检查变量是否为空,然后根据结果执行相应的操作

if [ -z "$variable" ]; then  echo "变量为空"  
else  echo "变量不为空"  
fi
http://www.lryc.cn/news/173692.html

相关文章:

  • Java实验案例(一)
  • Service Worker原理
  • MySQL集群高可用架构之MHA
  • 【算法专题突破】二分查找 - 704. 二分查找(16)
  • 基于Docker_Nginx+LVS+Flask+MySQL的高可用Web集群
  • 如何写一份出色的毕业设计任务书
  • RedHat 服务器安装NGINX
  • 跨域问题解决方案(三种)
  • 多轨音频编辑软件Multitrack Editor mac中文版主要功能
  • 工作中遇到的事务
  • 【论文写作】Latex 所有符号汇总参考
  • pom.xml中解决“vulnerable dependency maven:org.yaml:snakeyaml:1.33“警告问题
  • 栈和队列-Java
  • ORA-07445: exception encountered: core dump [kdxlin()+4088]---惜分飞
  • 【C刷题】day3
  • go 线程限制数量 --chatGPT
  • 【Linux网络编程】日志与守护进程
  • 多输入多输出 | MATLAB实现CNN-BiGRU卷积双向门控循环单元多输入多输出
  • Qt: 鼠标形状设置
  • 【Oracle】Oracle系列之七--表的创建与管理
  • C/C++运算符超详细讲解(系统性学习day5)
  • Android 遍历界面所有的View
  • 建筑能源管理(1)——建筑能源管理的概念
  • SpringSecurity
  • C++ vector模拟实现
  • BUUCTF:[GYCTF2020]FlaskApp
  • 好玩的调度技术
  • Android 自定义加解密播放音视频(m3u8独立加密)
  • 常见的文件格式
  • 浏览器输入url后回车展开过程