SHELL相关的特殊字符总结
2013-05-14 22:27
225 查看
@掬一捧 编辑于2013/05/14
*星号:匹配任意字符的零次或多次。
?问号:匹配任意一个字符。
[字符组]:匹配该字符组所限定的任意一个字符。
!感叹号:一般紧跟在一对方括号的左括号之后,表示不在一对方括号中所列的字符。
模式表达式:包含一个或者多个通配符的字。
*(模式表):匹配给定模式表中零次或多次出现的“模式”,各模式之间以”|“隔开。
+(模式表):匹配给定模式表中一次或多次出现的“模式”,各模式之间以”|“隔开。
?(模式表):匹配模式表中任何一种零次或者一次出现的“模式”,各模式之间以”|“隔开。
@(模式表):仅仅匹配模式表中给定的一次出现的“模式”,各模式之间以”|“隔开。
!(模式表):除给定模式表中的一个“模式”之外,可以匹配任何其它的内容。
模式表达式的定义是递归的,每个表达式中都可以包含一个或者多个模式。
双引号:除”$“、“`“及”"之外的字符均作为普通字符对待。“$“变量值替换;“`“命令替换;“"转义字符。
单引号:所有的字符均视作普通字符。
倒引号:字符串被解释为命令行内容,且有比较高的执行优先级。
输入重定向符”<":将命令(或可执行程序)的标准输入重定向到指定文件。
输出重定向符”>“:把命令(或可执行程序)的标准输出重定向到指定文件。如果文件已经存在会覆盖里面的内容。
注意:每个命令其实也就是一个可执行程序。
输出附加定向符”»“:和输出重定向符类似,只是不会覆盖已经存在的文件内容,而只是在文件的尾部附加。
与文件描述字有关的重定向:stdin(0)\stdout(1)\stderr(2)。
管道线:“|“前一个命令的输出是下个命令的输入。
后台命令:在命令的最后输入”&“字符,该命令的执行进程将在后台执行。
逻辑与(&&):同样是顺序执行,一旦遇到一个命令执行失败,后面的命令将不再执行。
逻辑或(||):依旧是顺序执行,只要遇到一个命令执行成功,其它的命令即被忽视掉。
{}形式:根据命令的出现次序执行。注意的一点是:左括号”{“的后面应该有个空格,右括号”}“前面必须有个分号;同时,括号内必须满足命令的合法规范。
()形式:和{}形式类似,只是左括号”(“后不必有空格,右括号”)“前也无需分号。
两种组合方式的区别:使用{}组合的命令只是在本shell内执行命令表,不会产生新的进程;而()组合形式组成的命令表是在新的子SHELL内执行的;因此,在()内执行的命令不会改变父SHELL的变量值以及工作目录。
如切换目录的实现:{ cd /;} 会达到目的,而(cd /)不起任何的效果。
通配符
通配符用于模式匹配,如文件名匹配、路径名搜索、字符串查找等。*星号:匹配任意字符的零次或多次。
?问号:匹配任意一个字符。
[字符组]:匹配该字符组所限定的任意一个字符。
!感叹号:一般紧跟在一对方括号的左括号之后,表示不在一对方括号中所列的字符。
模式表达式:包含一个或者多个通配符的字。
*(模式表):匹配给定模式表中零次或多次出现的“模式”,各模式之间以”|“隔开。
+(模式表):匹配给定模式表中一次或多次出现的“模式”,各模式之间以”|“隔开。
?(模式表):匹配模式表中任何一种零次或者一次出现的“模式”,各模式之间以”|“隔开。
@(模式表):仅仅匹配模式表中给定的一次出现的“模式”,各模式之间以”|“隔开。
!(模式表):除给定模式表中的一个“模式”之外,可以匹配任何其它的内容。
模式表达式的定义是递归的,每个表达式中都可以包含一个或者多个模式。
引号
在SHELL中引号分为三种:单引号、双引号和倒引号。双引号:除”$“、“`“及”"之外的字符均作为普通字符对待。“$“变量值替换;“`“命令替换;“"转义字符。
单引号:所有的字符均视作普通字符。
倒引号:字符串被解释为命令行内容,且有比较高的执行优先级。
输入输出重定向符
输入输出标准文件:stdin\stdout\stderr。输入重定向符”<":将命令(或可执行程序)的标准输入重定向到指定文件。
输出重定向符”>“:把命令(或可执行程序)的标准输出重定向到指定文件。如果文件已经存在会覆盖里面的内容。
注意:每个命令其实也就是一个可执行程序。
输出附加定向符”»“:和输出重定向符类似,只是不会覆盖已经存在的文件内容,而只是在文件的尾部附加。
与文件描述字有关的重定向:stdin(0)\stdout(1)\stderr(2)。
注释、管道线和后台
注释:以”#“开头。#!/bin/bash。管道线:“|“前一个命令的输出是下个命令的输入。
后台命令:在命令的最后输入”&“字符,该命令的执行进程将在后台执行。
命令执行操作符
顺序执行:以分号”;“隔开,顺序执行。逻辑与(&&):同样是顺序执行,一旦遇到一个命令执行失败,后面的命令将不再执行。
逻辑或(||):依旧是顺序执行,只要遇到一个命令执行成功,其它的命令即被忽视掉。
成组命令
将若干条命令组合在一起,使其在逻辑上被视为一条命令。{}形式:根据命令的出现次序执行。注意的一点是:左括号”{“的后面应该有个空格,右括号”}“前面必须有个分号;同时,括号内必须满足命令的合法规范。
()形式:和{}形式类似,只是左括号”(“后不必有空格,右括号”)“前也无需分号。
两种组合方式的区别:使用{}组合的命令只是在本shell内执行命令表,不会产生新的进程;而()组合形式组成的命令表是在新的子SHELL内执行的;因此,在()内执行的命令不会改变父SHELL的变量值以及工作目录。
如切换目录的实现:{ cd /;} 会达到目的,而(cd /)不起任何的效果。
相关文章推荐
- SHELL相关的特殊字符总结
- shell 中常见的控制字符和特殊字符总结
- Linux CentOS 7 shell中的特殊字符及与管道相关的命令(cut,sort,wc,uniq,tee,tr,split)
- Shell中特殊字符的用法总结大全
- shell学习总结之特殊字符及特殊变量
- shell特殊字符总结
- shell脚本中28个特殊字符的作用简明总结
- shell脚本中28个特殊字符的作用简明总结
- shell脚本中28个特殊字符的作用简明总结
- shell特殊字符,shell的几个命令
- shell高级编程(2)——特殊字符
- shell中的特殊符号总结
- 用URL传参带特殊字符,特殊字符丢失[总结]和中文乱码(ZT)
- shell 特殊字符用例
- 嵌入式 shell相关经典解释如变量以及赋值和特殊符号
- shell特殊字符
- Shell-bash中特殊字符汇总[转]
- java基本字符输入相关总结
- Shell脚本常识--(特殊字符)
- sed命令 shell变量 特殊字符