首页 > 系统相关 >Linux扩展篇-shell编程(五)-流程控制(一)-if语句

Linux扩展篇-shell编程(五)-流程控制(一)-if语句

时间:2023-06-27 10:12:26浏览次数:48  
标签:body shell 变量 编程 else Linux fi condition

基本语法:

(1)单分支

if [ condition ];then
    # if body
fi

或

if [ condition ]
then
    # if body
fi

(2)多分支

if [ condition ]; then
    # if body
elif [ condition ]; then
    # else if body
else
    # else body
fi

注意事项:

  • if 开始 fi 结尾,当then和if在同一行的时候需要使用“;”分号;不在同一行时,可直接输入。
  • 在 '[' 后面和 ']' 前面都必须要有空格
  • 对于变量的处理,需要加引号,以避免不必要的错误。没有加双引号会在一些含空格等的字符串变量判断的时候产生错误。比如[ -n "$var" ],如果var为空会出错。
  • 不支持浮点数的判断
  • 未定义的变量,在使用-z或者-n来检查长度时,值也为0
  • 空变量未初始化的变量,在执行shell脚本时会出现意外报错,在使用前用-n或者-z进行判断。
  • $? 上一条命令执行的退出状态,可以用来作为判断。

标签:body,shell,变量,编程,else,Linux,fi,condition
From: https://www.cnblogs.com/cavan2021/p/17242789.html

相关文章

  • 不能使用astyle对Linux的Kconfig和Makefile进行排版,会导致编译错误
    代码排版工具不同人代码的排版习惯不一样。遇到自己不喜欢的格式,看起来比较麻烦。可以使用astyle对代码进行排版。我喜欢以"otbs"格式的排版。命令如下:astyle-s--style=otbs*.castyle-s--style=otbs*.h错误排版一次使用时,不小心对所有文件进行了排版。hankf@XSZGS4......
  • go:(三)web编程:socket
    引用:08.1.Socket编程|第八章.Web服务|《GoWeb编程》|Go技术论坛(learnku.com)1.什么是socket: 2.socket如何通信: 3.Socket基础知识:类型:TCPSocket和UDPSocket......
  • 解决PetaLinux编译Microblaze的U-Boot的错误 “undefined reference to `eth_get_dev_
    错误PetaLinux编译Microblaze的U-Boot时,遇到下列错误,链接时提示找不到相关函数。|microblazeel-xilinx-linux-ld.bfd-Bstatic--no-dynamic-linker-Ttext0x80100000-ou-boot-Tu-boot.ldsarch/microblaze/cpu/start.o--start-grouparch/microblaze/cpu/built-......
  • Ardupilot: 开启多个无人机SITL仿真实例Shell脚本
    将该脚本文件放入Ardupilot目录下,文件名称为swarm.sh例如:开启三台Copter无人机仿真示例,可运行脚本:bashswarm.shArduCopter3#!/bin/bash#runexample:startrunthreeArduCoptersitl#bashswarm.shArduCopter3#Vehiclestartlocationlocs=('22.71......
  • 查找占用Linux系统上最多空间的目录
    要查找占用Linux系统上最多空间的目录,可以使用以下命令:du-h--max-depth=1/ 这个命令会列出根目录下每个目录占用空间的大小,并以降序排列。其中,`-h`选项表示以人类可读的格式显示大小,`--max-depth=1`选项表示只显示一层目录你可以通过查看这个列表来确定哪些目录占用了最......
  • Linux下进程隐藏
    https://github.com/gianlucaborello/libprocesshider/劫持预加载动态链接库LD_PRELOAD查看Linux操作系统正在运行的进程,一般会使用系统命令ps、top等,像ps这样的命令通常是读取了/proc/目录下文件。Linux操作系统上的/proc目录存储的是当前内核运行状态的一系列特殊......
  • SAP BTP 平台 ABAP 编程环境如何维护自定义 Unit Of Measure 数据库表 T006
    在ABAPOn-Premises系统下,我们可以轻易在SAPGUI里对UnitofMeasure数据库表即T006进行维护:[图片]ABAP数据库表T006是SAP系统中的一个重要数据表,它用于存储与度量单位相关的信息。在SAP系统中,度量单位用于表示各种物料、服务和计量单位。这些信息对于物料管理、......
  • 【Linux】systemd.timer replace the crontab or at jobs
    systemd架构学习Systemd的第一步,就是搞懂"单元"(unit)是什么。简单说,单元就是Systemd的最小功能单位,是单个进程的描述。一个个小的单元互相调用和依赖,组成一个庞大的任务管理系统,这就是Systemd的基本思想。由于Systemd要做的事情太多,导致单元有很多不同的种类,大概一......
  • Linux安装MongoDB
    Linux安装MongoDB环境Linux:Centos7MongoDB:5.0.9下载位置官网:https://www.mongodb.com/try/download/communityhttps://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel70-5.0.9.tgz下载依赖与安装包安装所需要工具:yuminstallwget-yyuminstallvim-......
  • Linux将home磁盘空间分给root_随笔记
    ==========================================将home空间配给roottarcvf/home.tar/home#备份家目录fuser-km/home#终止家目录所有进程umount/home#卸载家目录lvremove/dev/mapper/......