概述
1 命令顺序执行
在执行某个命令的时候,有时需要依赖于前一个命令是否执行成功,例如,假设你希望 将一个目录中的文件全部拷贝到另外一个目录中后,然后删除源目录中的全部文件。在删除 之前,你希望能够确信拷贝成功,否则就有可能丢失所有的文件。
使用& &的一般形式为:
命令1 && 命令2
这种命令执行方式相当地直接。 &&左边的命令(命令1)返回真(即返回0,成功被执行) 后,&&右边的命令(命令2)才能够被执行;换句话说,“如果这个命令执行成功 &&那么执 行这个命令”。
使用| |的一般形式为:
命令1 || 命令2
| |的作用有一些不同。如果 | |左边的命令(命令 1)未执行成功,那么就执行 | |右边的命令 (命令2);或者换句话说,“如果这个命令执行失败了 || 那么就执行这个命令”。
如果希望把几个命令合在一起执行, shell提供了两种方法。既可以在当前shell也可以在子shell中执行一组命令。 为了在当前shell中执行一组命令,可以用命令分隔符隔开每一个命令,并把所有的命令用圆括号()括起来。 它的一般形式为:
(命令1;命令2;. . .)
如果使用{ }来代替(),那么相应的命令将在子shell而不是当前shell中作为一个整体被执行,只有在{ }中所有命令的输出作为一个整体被重定向时,其中的命令才被放到子 shell中执 行,否则在当前shell执行。它的一般形式为:
{命令1;命令2;. . . }
例:
comet mylise.txt || (echo "lose" | mail wang;exit;)
2 文本过滤及正则表达式介绍
^ 只匹配行首 $ 只只匹配行尾
* 一个单字符后紧跟*,匹配0个或多个此单字符
[ ] 只匹配[ ]内字符。可以是一个单字符,也可以是字符序列。可以使用表示[ ]内字符序列范围,如用[1-5]代替[12345]
用来屏蔽一个元字符的特殊含义。因为有时在 shell中一些元字符有特殊含义。可以使其失去应有意义
. 匹配任意单字符
pattern{n} 用来匹配前面pattern出现次数。n为次数
pattern{n,} m含义同上,但次数最少为n
pattern{n,m} 含义同上,但pattern出现次数在n与m之间
句点“.”可以匹配任意单字符。。例如,如果要匹配一个字符串,以 beg开头,中间夹一个 任意字符,那么可以表示为beg.n,“.”可以匹配字符串头,也可以是中间任意字符。
^只允许在一行的开始匹配字符或单词。
可以说$与^正相反,它在行尾匹配字符串或字符, $符号放在匹配单词后。
注意^符号的使用,当直接用在第一个括号里,意指否定或不匹配括号里内容。
[^a-zA-Z]
匹配任一非字母型字符,而
[^0-9]
使用*可匹配所有匹配结果任意次,但如果只要指定次数,就应使用 { },此模式有三种 形式,即:
pattern{n}
匹配模式出现n次。
pattern{n,}
匹配模式出现最少n次。
pattern{n,m}
匹配模式出现n到m次之间,n , m为0-255中任意整数。
请看第一个例子,匹配字母A出现两次,并以B结尾,操作如下:
A { 2 } B
匹配值为AAB
最后
以上就是现代心情为你收集整理的五、shell学习笔记-命令顺序执行和正则表达式介绍的全部内容,希望文章能够帮你解决五、shell学习笔记-命令顺序执行和正则表达式介绍所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复