Shell脚本是Linux开发工作中常用的工具,但是我一直没有找到一个适合自己的简明扼要的HandBook。在工作过程中整理了一下,贴在这里已备查看。
Shell中的特殊符号
$ 美元符号。用来表示变量的值。如变量NAME的值为Mike,则使用$NAME就可以得到“Mike”这个值。
#井号。除了做为超级用户的提示符之外,还可以在脚本中做为注释的开头字母,每一行语句中,从#号开始的部分就不执行了。
“” 双引号。shell不会将一对双引号之间的文本中的大多数特殊字符进行解释,如#不再是注释的开头,它只表示一个井号“#”。但仍然保持特殊含义。(在双引号中的仍然保持特殊含义。(在双引号中的仍然保持特殊含义。(在双引号中的加变量名,即:PARAMNAME,依然会转换成变量的值。)双引号对于某些特殊符号是不起作用的,例如:”,PARAM_NAME,依然会转换成变量的值。)
双引号对于某些特殊符号是不起作用的, 例如:”,PARAMNAME,依然会转换成变量的值。)双引号对于某些特殊符号是不起作用的,例如:”,,,`(反引号)
双引号和单引号不能嵌套。即:echo ‘””’ 输出””, echo “’’” 输出’’
‘’ 单引号。shell不会将一对单引号之间的任何字符做特殊解释。(在双引号中的加变量名,即:加变量名,即:加变量名,即:PARAM_NAME,不会转换成变量的值。)
`` 倒引号。命令替换。在倒引号内部的shell命令首先被执行,其结果输出代替用倒引号括起来的文本,不过特殊字符会被shell解释。
echo ‘HOME’(结果:HOME’ (结果:HOME’(结果:HOME)
\ 斜杠。用来去掉在shell解释中字符的特殊含义。在文本中,跟在\后面的一个字符不会被shell特殊解释,但其余的不受影响。
[]中括号, 主要是用来测试条件的,通常放在if语句的后面。 (不过还是不太明白),但是中括号本身不会在测试语句执行后消失。
echo [HOME](结果:出现错误)echo[HOME] (结果:出现错误)
echo [HOME](结果:出现错误)echo[HOME ] (结果:[/home/xiongguoan ]) (注意:HOME后面有空格哦。)
echo [$HOME –eq ‘/xiong’] (结果:[/home/xiongguoan –eq /xiong])
{}大括号,主要是和$符号配合,作为字符串连接来使用
echo ${HOME}ismydir (结果:/home/xiongguoanismydir)