shell第四章(shell函数、shell正则表达式)

本章内容

  1. shell函数
  2. shell正则表达式

1、shell函数

linux shell 可以用户定义函数,然后在shell脚本中可以随便调用.

格式:

funname () {

       CMD  #函数体

}

例子:

#!/bin/bash 
fun () {
echo "hello world"
}
fun
...
╭─root@localhost.localdomain ~  
╰─➤  bash test8.sh
hello world

return 函数传参

#!/bin/bash 
fun () {
echo "hello world"
return $i
}
for i in {1..4}
do
fun
done
...
╭─root@localhost.localdomain ~  
╰─➤  bash test8.sh
hello world
hello world
hello world
hello world
╭─root@localhost.localdomain ~  
╰─➤  echo $?    
4

return 在函数中定义状态返回值
返回并终止函数
返回的只能是 0-255 的数字,类似于 exit

#!/bin/bash 
fun () {
echo "hello world"
return $i
echo "how beautiful!"
}
for i in {1..4}
do
fun return
done
...
╭─root@localhost.localdomain ~  
╰─➤  bash test8.sh
hello world
hello world
hello world
hello world

2、正则表达式(基于grep讲解)

  • 功能就是用来检索、替换那些符合某个模式(规则)的文本,正则表达式在每种语言中都会有;
  • 正则表达式就是为了处理大量的文本或字符串而定义的一套规则和方法
  • 通过定义的这些特殊符号的辅助,系统管理员就可以快速过滤,替换或输出需要的字符串
  • Linux正则表达式一般以行为单位处理

基础正则表达式

符号描述
.匹配任意单个字符(必须存在)
^匹配以某个字符开头的行
$配以什么字符结尾的行
*匹配前面的一个字符出现0次或者多次;eg:a*b
.*表示任意长度的任意字符
[]表示匹配括号内的一个字符
[^]匹配[^字符]之外的任意一个字符
^[^]匹配非[^字符]内字符开头的行
\<锚定 单词首部;eg:\<root
\>锚定 单词尾部:eg:\>root
\{m,n\}表示匹配前面的字符出现至少m次,至多n次
\(\)表示对某个单词进行分组;\1表示第一个分组进行调用

扩展正则

  • egrep ...
  • grep -E ...
  • 扩展正则支持所有基础正则;并有补充
  • 扩展正则中{}和[]不用转义可以直接使用;
符号描述
+表示前面的字符至少出现1次的情况
|表示“或”
表示前面的字符至多出现1次的情况

 

原文链接:https://www.cnblogs.com/du-z/p/10968051.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值