3. 特殊符号
# 注释,行首以'#'开头为注释(#!例外)
注意:在echo命令中被转义的#是不能作为注释的;同样的,#也可以出现在特定的参数替换结构中或者是数字常量表达式中。
例:
1. echo "The # here does not begin a comment."
2. echo 'The # here does not begin a comment.'
3. echo The /# here does not begin a comment.
4. echo The # here does begin a comment
5.
6. echo ${PATH#*:} #参数转换,不是注释
7. echo $((2#101011)) #参数转换,不是注释
标准的引用和转义字符("'/)可以用来转义#
; 命令分隔符,可以用来在一行中写多个命令
有时候需要转义
;; 中止'case'选项
例:
1. case "$variable" in
2. abc) echo "/$variable = abc" ;;
3. xyz) echo "/$variable = xyz" ;;
4. esac
. .命令等价于source命令,这是一个bash内建命令。
. .作为文件名的一部分,如果作为文件名的前缀的话,那么这个文件为隐藏文件,不被ls列出。
. .作为目录名的一部分,那么.表达的是当前目录,".."表示上一级目录。
.命令经常作为一个文件移动命令的目的地
, 逗号连接了一系列的算术操作,虽然里边所有内容都被运行了,但只有最后一项被返回。
例:
1. let "t2 = ((a = 9, 15/3))" # Set "a = 9" and "t2 = 15/3"
` 后置引用,命令替换。
: 空命令,等价于"NOP", 也可被认为与shell的内建命令(true)作用相同
在if/then中的占位符;
在一个二元命令中提供一个占位符;例: 1 :${username=`whoami`} # 如果没有:的话,将输出一个错误
使用"参数替换"来评估字符串变量;
"变量扩展/子串替换",在和>重定向操作符结合使用时,把文件截断到0长度,没有修改它的权限,如果文件不存在,则创建它;
在和>>重定向操作符结合使用时,不会对文件产生任何影响,若文件不存在,则创建它;
! 取反操作符。
** 幂运算。
${} 参数替换。
$*,S@ 位置参数。
$? 退出状态变量。$?保存一个命令,一个函数或者脚本本身的退出状态。
$$ 进程ID变量,这个变量保存运行脚本的进程ID
& 后台运行命令,一个命令后面跟&,将表示在后台运行
可能还有很多符号,以后慢慢补充,下一篇写参数和变量的介绍~(To be continue...)