Linux shell之ABS--特殊字符
特殊字符如下:
“#” --注释,行首以#开头为注释(#!是个例外).
“;” --命令分隔符,可以用来在一行中来写多个命令.
“;;” --终止"case"选项.
“.” --“.”命令等价于 source 命令这是一个 bash 的内建命令.“.”如果作为文件名的前缀的话,那么这个文件将成为隐藏文件 “.”字符匹配,这是作为正则表达是的一部分,用来匹配任何的单个字符.
“"” --部分引用."STRING"阻止了一部分特殊字符.
“'” --全引用. 'STRING' 阻止了全部特殊字符.
"," --逗号链接了一系列的算术操作,虽然里边所有的内容都被运行了,但只有最后一项被返回,例如:
1 let "t2 = ((a = 9, 15 / 3))"
# Set "a = 9" and "t2 = 15 / 3"
"\" --转义字符,如\X 等价于"X"或'X'.
"/" --文件名路径分隔符.或用来做除法操作.
"`" --后置引用,命令替换.
":" --空命令,等价于"NOP"(no op,一个什么也不干的命令).也可以被认为与 shell 的内建命令(true)作用相同.":"命令是一个 bash 的内建命令,它的返回值为 0,就是 shell 返回的 true.例如:
在 if/then 中的占位符,如:
1 if condition
2 then : # 什么都不做,引出分支.
3 else
4 take-some-action
5 fi
"变量扩展/子串替换"
在和 > (重定向操作符)结合使用时,把一个文件截断到 0 长度,没有修改它的权限.
如果文件在之前并不存在,那么就创建它.如:
1 : > data.xxx
2 #文件"data.xxx"现在被清空了.
3 #与 cat /dev/null >data.xxx 的作用相同
4 #然而,这不会产生一个新的进程,因为":"是一个内建命令.
“!“ --取反操作符,将反转"退出状态"结果.也会反转 test 操作符的意义.比如修改=为!=.!操作是 Bash 的一个关键字.在另一种上下文中,!还能反转 bash 的"history mechanism".
"*" --万能匹配字符,用于文件名匹配(这个东西有个专有名词叫 file globbing),或者是正则表达式中.注意:在正则表达式匹配中的作用和在文件名匹配中的作用是不同的.同时还表示乘法运算,幂为“**”
“?” --测试操作.在一个确定的表达式中,用?来测试结果.(())结构可以用来做数学计算或者是写 c 代码,那?就是 c 语言的 3 元操作符的一个.
“?” --在 file globbing 中和在正则表达式中一样匹配任意的单个字符.
"$" --变量替换
"$" --在正则表达式中作为行结束符
"${}" --参数替换
"$*,$@" --位置参数
"$?" --退出状态变量.$?保存一个命令/一个函数或者脚本本身的退出状态.
"
"−−进程ID变量.这个