|
转载一篇蚊子副圈的文章,如要再转请注明文章出处:http://blog.chinaunix.net/u3/103679/showart.php?id=2071464shell 识别三种命令: 内建命令 shell函数 外部命令 外部命令是由shell 新的进程所执行的命令
a 建立一个新的进程
b 在path 里查找
c找到新进程取代执行中的shell
在shell的变量值可以是null
ex:fullname = “a b c” 包含空格时 需用引号
fullname = “$a $b $c” 多个变量连接也要引号
print 会自动包含\n printf 则需要执行添加
关于path
path=:/bin:/usr/bin 先查找当前
path=/bin:/usr/bin: 最后查找当前
path=/bin::/usr/bin 中间查找当前 (注意的是:冒号)
locale -a 列出所有系统说支持的locale
locale -ck 查询特定的locale变量
ex:locale -ck LC_TIME
在正则下
\ 关闭后续字符的特殊定义,但\(\) \{\}会打开其特殊定义
. 任何单个字符
* 0个或多个 在它之前的单个字符
单独出现时 在BRE中不具有任何意义(因为前面为空 就什么都没有)
^ 在BRE中 在表达式开头处具有意义
在ERE中 任何位置都有意义
$ 同上,只是他代表的是结尾处
[] 匹配方括号内任一字符
- 在这里的意思是连续 ex:1-9 1到9
^ 代表非
在方括号表达式中,所有的meta字符都会失去特殊含义
[]*\.-]这个例子比较特殊 对] 跟- 放进[]里的位置有些许讲究
\(['"]\).*\1 这个的意思是 ''或者“”,
不用担心单引号先找到或者是双引号先找到
注:BRE 基础正则表达式 ERE 扩展正则表达式
注:
[::] 字符集 ex: [:alpha:] 字母字符 [:alnum:] 数字字符
[:upper:] 大写 [:lower:] 小写 [:space:] 空格
[..] 多字符序列视为一个单位
[==]等价字符集 对于有音标的才需要
后向引用
\( \) 配一个\n
ex:\( \)\1 表示引用前面的一次,那就是() () 原来有一次,再应用一次
另外注意的是,n代表1-9 最多可以9次的应用,顺序是从左开始
-------
((read|write)[[:space:]]*)+
解释 : ( )+ 一次或多次括号里面的
( ) [[:space:]]* ()后接一个或多个空格
read|write 在ERE里面这个表示交替 不是read就是write
------
\< 匹配单词头
\> 匹配档次尾
\< \> 只匹配单词
-----------
head -n
awk 'FNR |
|
|