linux学习笔记(3)

先说一下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使用详解

曾经一直想让别人知道自己的心情,那些沉重,

linux学习笔记(3)

相关文章:

你感兴趣的文章:

标签云: