- shell函数:shell中允许将一组命令集合或语句形成一段可用代码,这些代码块称为shell函数。给这段代码起个名字称为函数名,后续可以直接调用该段代码。
- 格式:fun() { 命令 }
- Shell正则表达式
定义:匹配字符串,为了处理大量得文本和字符串指定的一套规则和方法。
分类:基础正则和扩展正则(+ ? | () )
正则与通配的区别:
1) 三剑客awk sed egrep都是正则
2) 文件目录名——通配符 ; 文件内容(字符串,文本内容)——正则表达式
. 匹配任意单个字符
^ 匹配前面字符串开头
$ 匹配前面字符串结尾
*匹配前一个字符的零个或多个
.*表示任意长度的任意字符
+表示前面的字符初选最少一次的情况
?表示前面字符出现最多一次
[ ]表示范围内的一个字符
[.-.]匹配括号里的任意一个字符
^[^] 匹配[^]字符之外的任意一个字符
{n,m}表示最少n次 最多m次
\>锚定单词尾部
\<锁定单词首部
( )调用前面第一个分组
| 或
例:打印出包含某个关键词的文件(关键词执行脚本时接收)
#!/bin/bash
key=$1
for file in `find / -type f`
do
grep "$key" $file &>/dev/null
if [ $? -eq 0 ];then
echo $file
sleep 1
fi
done
- 统计系统中以.sh结尾的文件总大小,输出结果以kb为单位
#!/bin/bash
sum=0
for size in `find /root -name "*.sh" -exec ls -l {} \; | cut -d " " -f 5`
do
let sum+=$size
done
echo "$((sum/1024))kb"