shell脚本编剧 函数定义 脚本中断

本文介绍了如何在Shell脚本中定义函数,以及如何使用`break`、`continue`和`exit`控制脚本流程。还详细讲解了字符串截取的三种方法,并给出了一个生成随机密码的实例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

shell脚本编剧 函数定义 脚本中断

shell函数:
将需要重复使用的操作,定义为公共的语句块,叫函数

语法结构:
格式1:
         function  函数名  {
	命令序列
	……
          }
格式2:
         函数(){
	命令序列
	……
         }

调用函数:
	函数名   参数1   参数2 ...
	//在函数中使用位置变量来调用参数
位置变量:
	# sh test.sh  参数1  参数2
	# vim test.sh
	#!/bin/bash
	echo  $1
	echo  $2
	
	$#   : 显示一共有多少个参数
	$@  : 显示所有的参数
	$?    : 显示返回的状态码 
	$$   : 显示当前脚本的进程号

	查看进程:ps   -aux	
	杀死进程:kill   -9    PID号

	ctrl+z 放入后台
	jobs    查看后天
	
	实例:同时创建abc目录且在此目录下创建a.txt文件
	#  mymk(){
		mkdir  $1
		cd $1
		touch $2
	}
	# mymk  abc  a.txt

中断与退出:
break:结束整个循环
continue:结束本次循环
exit:结束整个脚本

实例:输出30以内3的倍数
	知识点:数组、continue
	#!/bin/bash
	for i  in  `seq 30`
	do
		[ $[i%3] -ne 0 ]  &&  continue  | |  echo $i
	done

字符串截取:
字符截取的三种用法:
1. 变 量 名 : 起 始 位 置 : 长 度 2. e x p r s u b s t r “ {变量名:起始位置:长度} 2.expr substr “ 2.exprsubstr变量名” 起始位置 长度
3.echo “$变量名” | cut -b 起始位置-结束位置

字符串替换两种方法:
1.只替换第一个匹配结果:
	${变量名/old/new}
2.替换全部匹配结果:
	${变量名//old/new}

字符串掐头去尾:
1.从左往右,最短匹配删除: ${变量名#*关键词}
2.从左往右,最长匹配删除: ${变量名##*关键词}
3.从右往左,最短匹配删除: ${变量名%关键词}
4.从右往左,最长匹配删除: ${变量名%%关键词}

1.${变量名:起始位置:长度}
注意:起始位置从0开始
# phone=183015935786
统计字符串的长度:
#echo ${#phone}
11
截取前三位:
#echo ${phone:0:3}
//如果是从第一个开始截,可以省略0不写
#echo [ h o n e : : 3 2. e x p r s u b s t r “ {[hone::3} 2.expr substr “ [hone::32.exprsubstr变量名” 起始位置 长度
注意:起始编号从1开始,注意与${ }区分开

截取前三位:
	#expr  substr  “$phone” 1  3
	183

3.echo “$变量名” | cut -b 起始位置-结束位置
注意:起始编号从1开始,与expr类似

截取前三位:
	#echo“$phone” | cut -b 1-3
	//-b选项是按字节截取

截取后六位
	#echo“$phone” | cut -b 6-
	//如果截取到最后一位,可忽略不写

截取单个第六位的字符:
	#echo“$phone” | cut -b 6

截取多个不连续的字符:用逗号分割
	#echo“$phone” | cut -b 6,9,11

实例:生成一个随机密码
# vim rand.sh
x=1234567890 adwqasdwqQWEQWQWEASDQAFWEASDWAEASD
for i in seq 8
do
num= [ R A N D O M t m o = [RANDOM%62] tmo= [RANDOMtmo=[x:num:1]
pass= [ p a s s ] [pass] [pass]tmp
done
echo $pass

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值