shell易混淆的特殊字符 详解

& 和 && 有什么区别

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

‘ 和 ” 引号有什么区别

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

[ $a == $b ] 和 [ $a -eq $b ] 有什么区别

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

= 和 == 有什么区别

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

$* 和 $@ 有什么区别

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

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

$? 表示什么意思

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

${variable:-10}和 ${variable: -10}有什么区别

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

赞(2) 打赏
特别声明:除特殊标注,本站文章均为原创,遵循CC BY-NC 3.0,转载请注明出处。三伏磨 » shell易混淆的特殊字符 详解

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏