跳转至
本文阅读量

1. Shell 及 Bash 相关

1.1 什么是 Shell,为什么要有 Shell

1.2 什么是 Bash

1.3 Q&A

1.4 Bash profile 加载顺序

1.4.1 Shell 中 $() 和 ${} 的区别

  • $(): 将括号内命令的执行结果赋值给变量
  • ${}: 用来作变量替换
  • 一般情况下,$var 与 ${var} 并没有啥不一样。但是用 ${ } 会比较精确的界定变量名称的范围

1.4.2 Shell 传参特殊参数定义

参数 说明
$# 传递到脚本的参数个数
$* 以一个单字符串显示所有向脚本传递的参数。如"\(*"用「"」括起来的情况、以"\)1 $2 … $n"的形式输出所有参数。
$$ 脚本运行的当前进程ID号
$! 后台运行的最后一个进程的ID号
$@ \(*相同,但是使用时加引号,并在引号中返回每个参数。如"\)@"用「"」括起来的情况、以"\(1" "\)2" … "$n" 的形式输出所有参数。
$- 显示Shell使用的当前选项,与set命令功能相同。
$? 显示最后命令的退出状态。0表示没有错误,其他任何值表明有错误。

1.4.3 查询当前 Shell 是否是 login 还是 non-login shell

使用 echo $0,如果结果中最左侧有 - 前缀,则为 login shell,否则为 non-login shell

/mnt/c/Users/ubuntu$ echo $0
-bash