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

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.exprsubstr{变量名:起始位置:长度} 2.expr substr “变量名” 起始位置 长度
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 [hone::32.exprsubstr{[hone::3} 2.expr substr “变量名” 起始位置 长度
注意:起始编号从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=[RANDOMtmo=[RANDOM%62] tmo=[x:num:1]
pass=[pass][pass]tmp
done
echo $pass

发布了30 篇原创文章 · 获赞 0 · 访问量 700
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 游动-白 设计师: 上身试试

分享到微信朋友圈

×

扫一扫,手机浏览