先说一下shell编程中函数的使用方法吧
首先给出一个函数的例子
fuction(){ if [ -z "$1" ]; then echo "error" return fi}
没有写的很复杂,看着这个函数,感觉应该差不多。让人感到奇怪的是为什么没有参数呢。而且"$1"很明显是用了一个叫1的变量。但是变量不是第一个字符为字母吗。
我来说明一下,"$1"表示第一个参数,如果之后有参数就是$2,$3…这种变量是自变量,也是为了用户自定义的变量与这些变量不冲突。
除了这些以数字命名的自变量,还可以通过$#获取参数的个数,另外$0永远是文件名
接着说一些常用的命令吧
help文档的写法,注意:HELP必须顶格写
cat<< HELP ... ...HELP
wc命令
wc用于统计指定文件的字节数(-c),字数(-w),行数(-l),并输出。
wc -w file.txt就是统计file文件的字数
sed命令
sed可以逐行读取文件到缓冲区,对这个副本进行编辑,对源文件不产生影响
p命令
sed -n "26p" 123.sh
上命令就是只打印123.sh文件的第26行,-n是取消默认输出
而用 "20,30p"就输出20-30行
d命令:不打印的部分
用 "30,40d"就是不输出30-40行
sed的匹配符合正则表达式,所以他的功能十分强大,比如:
sed -n '1,20s/My$/You/gp' 123.sh
将1-20行中以My结尾的行数中所有My换成You,因为/可能在匹配中出现,所以分隔符可以为任意字符 格式:s#a#b#g,将a匹配的替换为b
cut 命令从文件的每一行剪切字节(-b)、字符(-c)和字段(-f)并将这些字节、字符和字段写至标准输出
echo -n "$1" | cut -b 1-3
提取每行的1-3的字节
使用read读取文件输入或标准输入
1:while read linedo echo "line: $line"done < filename2.cat filename | while read linedo echo "Line: $line"done3.awk '{print $0}' filename
关于awk,用法很多,不一一赘述。
具体参见:awk使用详解
曾经一直想让别人知道自己的心情,那些沉重,