shell中的meta
- IFS :包括Space,Tab和Enter
- CR:Enter
- = :设定变量
- $ :变量替换${ }或命令行替换$( )
- > :输出流重定向
- < :输入流重定向
- | :管道
- & :文件描述符重定向(如 2>&1)
- ; :在一个command结束时,忽略其返回值,继续执行下一个command
- ( ) :command group(在subshell中执行),或命令行替换$( ),或数字运算$(( )),或数值条件测试(( ))
- { } :command group(在当前shell中执行,亦称为匿名函数),或变量替换${ }
- &&
- ||
- ! :执行history列表中的命令(?)
- [ ] :条件测试(等价于test)
- : :空命令
- ……(还有很多)
关于Enter
在不同情况下,Enter扮演不同角色:
- CR:一般情况下
- IFS:某些特殊情况下(现无法归纳)
- Newline:被单引号、双引号或反斜杠转义的情况下
Enter的问题较为复杂,现阶段不需要纠结,只要清楚什么时候是CR,什么时候不是CR即可