#符号
- 行首以#开头但后面没有!的是注释
-
#!
用于指定解释器 - 使用转义符"" 后#不再表示注释,而是字符
echo The \# here does not begin a comment
- 参数替换
echo ${PATH#*:}
这里替换的规则还需要进一步学习 - 数制转换:
echo $(( 2#101010))
;分号##
- 使用
;
可以在一行写上两个或两个以上命令 -
if <>;then<>
语句要加分号 - 终止case选项
;;
case $var in
[0-9] echo "<9";;
(.)dot##
- 等价于source命令
在当前bash环境下读取并执行shell命令
source test.sh
. test.sh //equals
引号##
双引号(")和单引号(')都有阻止解释字符串中特殊字符比如#,\等的作用;
但单引号更为强烈,阻止string中所有特殊字符;
双引号阻止大部分特殊字符
斜线/和反斜线##
- 斜线=文件路径分隔符
或者除法运算符 - 反斜线是一种对单字符的引用机制。
\x
会转义字符x,等价于"x",'x'
""通常用来转义双引号和单引号,这样双引号和单引号就不会被解释成特殊含义了。
反引号(`)##
命令替换
可以将命令的输出复制到另一个变量中去
cp `mkdir dir` test.sh dir
先创建back目录,然后复制test.h到back目录
冒号:##
1,空命令=nop,也可以认为与shell内建命令true作用一样
while : //=while true
do
echo "endless loop"
done
也可以在if/then中作占位符
if[$condition -gt 0]
then : #do nothing
else
..
- 变量扩展/字串替换
$ : > test.sh #empty file
#same function as
cat /dev/null > test.sh