特殊符号:函数
$$ 进程号this
$* 和 $@ 都表示传递给函数或脚本的全部参数,不被双引号(" ")包含时,都以"$1" "$2" … "$n" 的形式输出全部参数。
可是当它们被双引号(" ")包含时,"$*" 会将全部的参数做为一个总体,以"$1 $2 … $n"的形式输出全部参数;"$@" 会将各个参数分开,以"$1" "$2" … "$n" 的形式输出全部参数。spa
${var} | 变量原本的值 |
${var:-word} | 若是变量 var 为空或已被删除(unset),那么返回 word,但不改变 var 的值。 |
${var:=word} | 若是变量 var 为空或已被删除(unset),那么返回 word,并将 var 的值设置为 word。 |
${var:?message} | 若是变量 var 为空或已被删除(unset),那么将消息 message 送到标准错误输出,能够用来检测变量 var 是否能够被正常赋值。 若此替换出如今Shell脚本中,那么脚本将中止运行。 |
${var:+word} | 若是变量 var 被定义,那么返回 word,但不改变 var 的值。 |
echo -e 转义; -E 禁止转义进程
`` 和 $() 等价;ip
表达式和运算符之间要有空格, eg. '2+2' 是错的, '2 + 2'则是对的, 乘法要用 '\*'ci
条件表达式要放在[]中间,而且要有空格,eg. [$a==$b] 是错的, [ $a == $b ] 则是对的 字符串
= 判断两个字符串相等; == 判断两个数字相等 -o 或; -a 与; -z 字符串长度是否为0; -n 字符串长度是否不为0string
单引号字符串的限制:table
双引号的优势:class