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