shell易混淆的特殊字符 详解

& 希望脚本在后台运行的时候使用它
&& 当前一个脚本成功完成才执行后面的命令/脚本的时候使用它

’ 当我们不希望把变量转换为值的时候使用它。
" 会计算所有变量的值并用值代替。

[ $a == $b ] 用于字符串比较
[ $a -eq $b ] 用于数字比较

= 用于为变量复制
== 用于字符串比较

$* 以一个字符串形式输出所有传递到脚本的参数
$@ 以 $IFS 为分隔符列出所有传递到脚本中的参数

1
2
3
4
$*$@ 都表示传递给函数或脚本的所有参数,不被双引号(" ")包含时,都以"$1" "$2"  "$3" 的形式输出所有参数.
当它们被双引号(")包含时:
"$*" 会将所有的参数作为一个整体,以"$1 $2$3" 的形式输出所有参数;
"$@" 会将各个参数分开,以"$1" "$2"  "$3"的形式输出所有参数。

$? 获取上一个命令的退出状态。( #参数正确,退出状态为0 ; #参数错误,退出状态1)
$? 还可以获取函数的返回值

${variable:-10} 如果之前没有给 variable 赋值则输出 10;如果有赋值则输出该变量
${variable: -10} 输出 variable 的最后 10 个字符

随机文章