Shell用#作为注释的开头。
Shell有三种引用机制:转义字符、单引号和双引号。

  • 不带引号的反斜杠“\”是Bash转义字符。它保留后面字符的文字值,换行符除外。如果出现\newline,且反斜杠本身未被引用,则\newline将被视为行的延续.
#!/bin/bash
set -ex

echo Hello \
World! \
How are you? \
Bye !
  • 单引号:将字符括在单引号 (‘’’) 中会保留引号中每个字符的文字值。单引号不能出现在单引号之间,即使前面有反斜杠。
#!/bin/bash
a='Hello world'
home='$a' # output '$a',not the value a variable
echo variable home:
echo $home

执行后输出:

variable home:
$a
  • 双引号:在双引号 (‘"’) 中包含字符将保留引号中所有字符的文字值,但 ‘$’, ‘`’, ‘\’和启用历史扩展时的“!”除外,字符‘$’, ‘`’在双引号中继续保留其特殊含义。当shell处于POSIX模式时即使启用了历史扩展,双引号中的“!”也没有特殊含义。”\”只有在后面跟以下字符(“$”、“`”、“\”或换行符)之一时,反斜杠才保留其特殊含义。“*”和“@”在双引号中具有特殊含义