shell脚本中的特殊符号较多,容易引起混淆,故将一些常见的特殊符号做下总结,以备忘记。
shell中常见的特殊符号有:美元符$、反引号`、反斜线\、双引号"、单引号'、冒号:、大括号{}、方括号[]、圆括号()、注释符#等。
1 美元符$
<1> 美元符$常用于读取变量的值。例如,var=10 则要读取var的值,需要使用$var --> echo $var
<2> 用于读取参数变量
参数变量 | 说明 |
$0 | Shell脚本的名字 |
$# | 传递给脚本的参数个数 |
$$ | Shell脚本的进程号,通常用它来生成一个唯一的临时文件,如/tmp/tmpfile_$$ |
$1, $2, … | Shell脚本的参数,第1个参数、第2个参数、… |
$* | 在一个变量中列出所有的参数,各个参数之间用环境变量IFS中的第一个字符分隔开。 |
$@ | 除了被双引号引用的情况,含义与$*相同,且不使用IFS环境变量 |
"$*" | 其值为"$1 $2 $3" |
"$@" | 其值为"$1" "$2" "$3" |
- | 当前的sh选项设置 |
? | 已执行的上一条命令的退出值 |
! | 最后一个进入后台的作业的PID |
$''
${}
$[ ] 与 expr命令 等价,用来处理数学表达式。如var=`expr 2 + 3` 等价于var=$[2 + 3] 等价于 var=$(expr 2 + 3)
$() 与 `` 等价,用来执行一条命令。如var=`date` 等价于 var=$(date)
2 反引号`
反引号` 用来将shell命令的输出赋给变量,例如:var=`date` 等价于 var=$(date)
3 反斜线\
反斜线\
4 双引号"
双引号"
5 单引号'
单引号'
6 冒号:
冒号
7 大括号{}
大括号{}
8方括号[]
方括号[]
9 圆括号()
圆括号()
10 注释符#
#除了用作超级用户的提示符之外,也作为shell的注释符,但只能注释一行代码,要想注释多行代码,需要使用:
方法1:
:<<字符 #说明,字符可以是数字或字符
...
...
字符
示例1:
:<<!
...
!
示例2:
:<<EOF
...
EOF
方法2:
if false ;then
...
...
...
fi