1、参数分类

1、位置参数:

获取参数的格式:$n。第一个参数$1,第二个参数$2.。。。。 $0为该脚本的名称

2、特殊参数
变量 含义
$# 传递给脚本或函数的参数个数总和
$* 传递给脚本或函数的所有参数,当被双引号 " " 包含时,所有的位置参数被看做一个字符串
$@ 传递给脚本或函数的所有参数,当被双引号 " " 包含时,每个位置参数被看做独立的字符串
$? 上个命令的退出状态,或函数的返回值,0 为执行成功,非 0 则为执行失败
$$ 当前 Shell 进程 ID。对于 Shell 脚本,就是这些脚本所在的进程 ID。

2、参数使用

1、脚本传递:参数利用一个空格来进行分割,如果传递的参数本身就有空格,则可以利用 "" 来引起来,例如

  1. bash args.sh php java "shell python go" # "shell python go"是一个参数

2、函数传递:同脚本传参类似

  1. #!/bin/bash
  2. # 函数定义
  3. function show_args() {
  4. echo "第一个参数:$1"
  5. echo "第二个参数:$2"
  6. echo "脚本名称为:$0"
  7. }
  8. # 函数调用
  9. show_args go pytho
  10. -----------------------------------
  11. 第一个参数:go
  12. 第二个参数:python
  13. 脚本名称为:args_func.sh