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

【Linux】结构化命令

结构化命令structured command:允许脚本根据条件跳过部分命令,改变执行流程。

1、if-then语句

格式1:

if command

then

   commands

fi

格式2:

if command; then

   commands

fi

运行if之后的command命令,如果它的退出状态码是0(该命令成功执行),那么就执行then里面的命令;如果是其它值,则执行脚本中的下一条命令。fi语句用来表示if-then语句到此结束。

#!/bin/bash
if pwd
thenecho "查看当前路径成功!"
fi

 

2、if-then-else语句

格式:

if command

then

   commands

else

   commands

fi 

3、嵌套if语句

 通过使用嵌套的if语句,可以在shell脚本中检查多种条件

#!/bin/bash
testuser=ln
if grep $testuser /etc/passwd
thenecho "用户$testuser存在。"echo
elseecho "用户$testuser不存在。"if ls -d /home/$testuser/thenecho "但是该用户有个路径。"fi
fi
echo "脚本运行完毕!"

4、elif语句

格式:

if command1

then

   commands

elif command2

then

   commands

fi

#!/bin/bash
testuser=ln
if grep $testuser /etc/passwd
thenecho "用户$testuser存在。"echo
elif ls -d /home/$testuser/
thenecho "用户$testuser不存在。"echo "但是该用户有个路径。"
fi
echo "脚本运行完毕!"

5、test命令

test命令可以在if-then语句中测试不同的条件,如果test命令中列出的条件成立,那么test命令就会退出并返回退出状态码0;若条件不成立,test命令就会退出并返回非0的退出状态码。

格式:test condition

if test condition

then

   commands

fi

 如果不写test命令的condition条件,那它会以非0的退出状态码退出并执行else部分的代码块。

#!/bin/bash
if test
thenecho "111"
elseecho "222"
fi

 加上test命令的condition条件

#!/bin/bash
var1="Full"if test $var1
thenecho "111"
elseecho "222"
fi

 如果test命令的condition返回非0退出状态码

#!/bin/bash
var1=""if test $var1
thenecho "111"
elseecho "222"
fi

6、使用方括号代替test命令

可以通过使用方括号定义测试条件注意:第一个方括号之后和第二个方括号之前必须留有空格,否则会报错。 

格式:

if [ condition ]

then

   commands

fi

test命令中的condition和测试条件里的condition可以判断如下3类条件:

  1. 数值比较
  2. 字符串比较
  3. 文件比较

http://www.lryc.cn/news/504009.html

相关文章:

  • ElasticSearch01-概述
  • docker xxxx is using its referenced image ea06665f255d
  • Vue 2 中 v-text 和 v-html 指令的使用详解
  • 高级Python游戏开发:创建一款多人对战坦克大战
  • 数据结构_拓扑排序
  • Edge SCDN 边缘安全加速有什么用?
  • 被狗咬住怎么让它松口?
  • MySQL迁移SQLite 借助PYTHON脚本
  • Python什么是动态调用方法?What is Dynamic Method Invocation? (中英双语)
  • Cesium中实现仿ArcGIS三维的动态图层加载方式
  • 数据冒险、控制冒险、结构冒险
  • TCA9555芯片手册解读(6)
  • NodeJs-fs模块
  • Transformer: Attention Is All You Need (2017) 翻译
  • 【记录】Django解决与VUE跨域问题
  • Java 常见Exception异常解决方法
  • 东方通 TongWebV7 Docker 部署与 Spring Boot 集成指南
  • TIM输入捕获---STM
  • 【笔记】架构上篇Day6 法则四:为什么要顺应技术的生命周期?
  • MSF(Metasploit Framework)
  • Python中的OpenCV详解
  • IMX6ULL开发板学习嵌入式技术过程中为了测试本地网络是否正常而常用的Ping命令
  • Blue Ocean 在Jenkins上创建Pipeline使用详解
  • 2024 年最新前端ES-Module模块化、webpack打包工具详细教程(更新中)
  • photoshop的2个形状-箭头
  • 【经验分享】搭建本地训练环境知识点及方法
  • AI知识-多模态(Multimodal)
  • 代码随想录 leetcode-数据结构刷题笔记
  • Oracle最佳实践-优化硬解析
  • Windows中将springboot项目运行到docker的容器中