Linux - Shell编程 - 函数与数组
一、数组
今天这里我们来探讨一维数组的定义、统计、引用和删除等操作。首先来定义一个一维数组: A=( test1 test2 test3 ) ,定义数组一般以括号的方式来定义,数组的值可以随机定义。如何来引用呢? echo ${A[0]},代表引用第一个数组变量,结果会显示 test1,数组引用从 0 开始,代表第一个数组,依次类推。 echo ${A[1]},代表引用第二个数组变量,结果会显示 test2,数组引用也是从 0 开始计算的。 如何显示该数组所有参数呢?echo ${A[@]} 将显示所有参数test1test2 test3 。 如何显示该数组参数个数呢?echo ${#A[@]} 将显示该数组的参数个数 3。 如果替换某个数组呢?例如替换第二个 test2 数组为 test5:echo ${A[@]/test2/test5} 如何删除一个数组呢?例如删除 test3 数组命令为:unset A[2] ;echo ${A[@]}查看效果。
案例:输出数组元素的个数
二、函数
shell 允许将一组命令集或语句形成一个可用块,这些块称为
shell 函数,定义函数的格式:
function name (){
command1
........
}
name
案例:
三、shell编程之四剑客:sed、awk、find、grep
1、sed
案例一:文件内容替换
sed -i 's/127.0.0.1/10.0.0.200/g' test.txt 把文件里面的 127.0.0.1字符替换为10.0.0.200
案例二:在文件开头或者结尾添加字符:
案例三:在某某之后添加一行与在某某前添加一行
案例四:只打印匹配的一行
案例五:打印具体的行的内容
案例六:找到最大值和最小值
cat number.txt |sed 's/ /\n/g'|grep -v '^$'|sort -nr|sed -n '1p;$p'
2、awk
案例一:打印第几列
案例二:匹配ip
案例三:
3、find
4、grep
案例一:匹配
案例二:打印行号