Shell编程——跳出循环、shift参数左移、函数的使用

本文详细介绍了Shell编程中的跳出循环(break和continue)和Shift参数左移指令的用法,以及如何创建和使用函数,包括参数传递、返回值和变量处理。此外,还提供了两个实战例子,一个是自动备份MySQL数据库的脚本,另一个是启动nginx服务的脚本,帮助读者更好地理解和应用Shell脚本编写技巧。
摘要由CSDN通过智能技术生成

目录

1.跳出循环

2.Shift参数左移指令

3.函数的使用

(1)函数创建语法

(2)函数的使用

(3)返回值

(4) 把函数值赋给变量使用

(5)函数的参数传递

(6)函数中变量的处理

(7)用特殊字符来处理参数

4.实战

(1)自动备份mysql数据库脚本

(2)nginx服务启动脚本


1.跳出循环

  • break:跳出整个循环
  • break概述:跳出当前整个循环或结束当前循环,在for、while等循环语句中,用于跳出当前所在的循环体,执行循环体之后的语句,后面如果什么也不加,表示跳出当前循环等价于break 1,也可以在后面加数字,假设break 3表示跳出第三层循环
  • continue:跳过本次循环,进行下次循环
  •  continue概述:忽略本次循环剩余的代码,直接进行下一次循环;在for、while等循环语句中,用于跳出当前所在的循环体,执行循环体之后的语句,如果后面加的数字是1,表示忽略本次条件循环,如果是2的话,忽略下来2次条件的循环

示例1:写一个shell菜单,当按数字键4时退出,否则一直循环显示

break_continue.sh脚本:

运行结果:

示例2:

#!/bin/bash
while :
do
	read -p "Please enter prefix & password & num:" pre pass num
	printf "user information:
	*********************
	user prefix:   $pre
	user password: $pass
	user number:   $num
	********************
"
read -p "Are you sure?[y/n] " action
if [ "$action" == "y" ];then
	break
fi
done
for i in $(seq  $num)    # 从i =1开始,取到 $num  。 seq 表示 1-$num  
                         #$(seq  $num) 等于  ` seq  $num `   ; $( 命令 ) ; ${ 变量 }  ; [ 表达式/条件 ]  

do
	user=${pre}${i}
	id $user &> /dev/null
	if [ $? -ne 0 ];then
		useradd $user
		echo "$pass"|passwd --stdin $user &> /dev/null
		if [ $? -eq 0 ];then
			echo -e "\033[31m$user\033[0m creat"   #以红色来显示用户名
		fi
	else
		echo "user $user exist"
	fi
done

运行结果:

2.Shift参数左移指令

shift命令用于对参数的移动(左移),通常用于在不知道传入参数个数的情况下依次遍历每个参数然后进行相应处理(常见于Linux中各种程序的启动脚本)

在扫描处理脚本程序的参数时,经常要用到的shift命令,如果你的脚本需要10个或10个以上的参数,你就需要用shift命令来访问第10个及其后面的参数

作用:每执行一次,参数序列顺次左移一个位置,$#的值减1,用于分别处理每个参数,移出去的参数,不再可用

示例:加法计算器

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值