shell--流程控制语句

本文深入探讨了Bash脚本中的if语句用法,包括单if、双if结构及注意事项,通过实例展示了如何使用if语句进行条件判断,如判断文件是否存在,并基于此执行不同的操作,例如备份Mysql数据库。

if语句

if [ 条件判断是];then     空格不能省略
	程序
	fi
	
	或者
	if [ 条件判断式]
	then 程序
	fi
	需要注意的是:
	1.if 开头,fi 结尾

在这里插入图片描述

例子

	if [$rate -ge 80]
	then
		echo "warning,/dev/sda3 is full!!"
	fi

双if语句

if [ 条件判断]
then dosth
else
do sth

eg:备份Mysql数据库

#!/bin/bash
#同步系统时间
date=$(date+%y%m%d)
#统计数据库大小
size=$(du -sh /var/lib/mysql)
if [ -d /tmp/dbbak]
then 	
	echo "date:$date!"> /tmp/dbbak/dbinfo.txt
	echo "data size:$size">> /tmp/dbbak/dbinfo.txt
	cd /tmp/dbbak
	tar -zcf mysql-lib-$date.tar.gz /var/lib/mysql dbinfo.txt
	&> /dev/null
		rm -rf /tmp/dbbak/dbinfo.txt
	else
		mkdir /tmp/dbbak
		echo "date:$date!"> /tmp/dbbak/dbinfo.txt
	    echo "data size:$size">> /tmp/dbbak/dbinfo.txt
	    cd /tmp/dbbak
	tar -zcf mysql-lib-$date.tar.gz /var/lib/mysql dbinfo.txt
	&> /dev/null
		rm -rf /tmp/dbbak/dbinfo.txt
### Shell脚本中 if 语句流程控制入门教程 在Shell脚本编程中,`if`语句是实现条件判断的核心工具之一。它允许脚本根据特定条件执行不同的代码块,从而实现更复杂的逻辑控制[^2]。 #### 基本语法 `if`语句的基本结构如下: ```bash if [ condition ]; then # 当条件为真时执行的命令 else # 当条件为假时执行的命令 fi ``` 其中,`condition`是一个布尔表达式,用于测试某个条件是否成立。如果`condition`为真(非零值),则执行`then`后的代码块;否则执行`else`后的代码块[^2]。 #### 示例:简单的 if-else 判断 以下是一个示例脚本,演示如何使用`if`语句判断输入参数是否为"hello": ```bash #!/bin/bash if [ "$1" = "hello" ]; then echo "world" else echo "hello" fi ``` 在此脚本中,`$1`表示传递给脚本的第一个参数。如果参数为"hello",则输出"world";否则输出"hello"[^3]。 #### 使用 exit 终止脚本 在某些情况下,可能需要根据条件提前终止脚本的执行。这可以通过`exit`命令实现。例如,检查关键文件是否存在并决定是否继续执行脚本: ```bash #!/bin/bash if [ ! -f "/etc/passwd" ]; then echo "关键文件缺失,终止脚本!" exit 1 # 终止整个脚本 fi echo "此代码不会被执行" ``` 当`/etc/passwd`文件不存在时,脚本会输出错误信息并退出,后续代码将不会被执行[^1]。 #### 多分支条件判断 除了简单的`if-else`结构,还可以使用`elif`(即“else if”)来处理多个条件分支。例如: ```bash #!/bin/bash if [ "$1" = "start" ]; then echo "启动服务..." elif [ "$1" = "stop" ]; then echo "停止服务..." else echo "未知命令" fi ``` 此脚本根据传递的参数执行不同的操作:`start`启动服务,`stop`停止服务,其他任何参数都会输出"未知命令"[^2]。 #### 注意事项 1. 条件表达式需要用方括号`[]`括起来,并且方括号与条件之间必须有空格。 2. 字符串比较时,建议使用双引号将变量包裹起来,以防止变量为空时导致语法错误。 3. 使用`exit`命令时,可以指定一个退出状态码,通常0表示成功,非0表示失败。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

李卓书

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值