1. 什么是Bash重定向
重定向用于打开和关闭 当前shell执行环境或任何命令的文件。 如下所述,重定向操作符可与代表文件描述符(参见 XBD 文件描述符)的数字一起使用。
shell常见通配符:
| 字符 | 说明 | 举例 |
|---|---|---|
| * | 匹配0 或多个字符 | a*b match: a1bsb, axyzb, a012b, ab…; NoMatch: a,b,cb,1b… |
| ? | 匹配任意一个字符 | a?b match: aab, abb, acb, a0b…; NotMatch: accb, 123b… |
| [list] | 匹配 list 中的任意一个字符 | a[xyz]b match: axb, ayb, azb; NotMatch: other(axyb,axyzb,xyb…) |
| [!list] | !表示反选, 匹配 除list 中的任意一个字符 | a[!0-9]b Match: axb,aab,a-b…; NotMatch: a0b, axxb… |
| [c1-c2] | -表示范围, 像[0-9] [a-z] | a[0-2]b Match: a0b,a1b,a2b; NotMatch: other(axxxb,a3b…) |
| {string1,string2,…} | 匹配 sring1,string2…etc.中的任意字符串 | a{abc,xyz,123}b Match: aabcb,axyzb,a123b; NotMatch: other |
2. 元字符Meta
| 字符 | 说明 |
|---|---|
| IFS | 由 或 或 |
| CR | 由 |
| = | 设定变量。 |
| $ | 作变量或运算替换(请不要与 shell prompt 搞混了)。 |
| > | 重导向 stdout。 * |
| < | 重导向 stdin。 * |
| & | 重导向 file descriptor ,或将命令置于背境执行。 * |
| ( ) | 将其内的命令置于 nested subshell 执行,或用于运算或命令替换。 * |
| { } | 将其内的命令置于 non-named function 中执行,或用在变量替换的界定范围。 |
| ; | 在前一个命令结束时,而忽略其返回值,继续执行下一个命令。 * |
| && | 在前一个命令结束时,若返回值为 true,继续执行下一个命令。 * |
| ! | 执行 history 列表中的命令。* |
3. 转移符
作用:将特殊字符变为普通字符
字符 说明 ‘(单引号) 硬转义,其内部所有的shell 元字符、通配符都会被关掉。 “(双引号) 软转义,其内部只允许出现特定的shell元字符:$ 参数代换 ` 命令代替 (反斜杠) 转义,去除其后紧跟的元字符或通配符的特殊意义