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

本章内容

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

    1、shell函数

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

格式:

funname () {

       CMD  #函数体

}

例子:

#!/bin/bash 
fun () {
echo "hello world"
}
fun
...
╭─[email protected] ~  
╰─➤  bash test8.sh
hello world

return 函数传参

#!/bin/bash 
fun () {
echo "hello world"
return $i
}
for i in {1..4}
do
fun
done
...
╭─[email protected] ~  
╰─➤  bash test8.sh
hello world
hello world
hello world
hello world
╭─[email protected] ~  
╰─➤  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
...
╭─[email protected] ~  
╰─➤  bash test8.sh
hello world
hello world
hello world
hello world

2、正则表达式

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

基础正则表达式

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

扩展正则

扩展正则使用:

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

举例说明:

应用文本:

  1. “点”

猜你喜欢

转载自www.cnblogs.com/du-z/p/10968051.html