Shell函数

写在前面

一个简单的 Shell 函数

#!/bin/bash
funciton hello() {
  echo hello
}
hello

其它

链接

函数的定义

[ function ] function_name() {
  do_something
  [ return value ]
}
# []内为可选值

未显式指定 return,默认返回最后一条命令运行结果作为返回值,0 为成功,1 为失败
函数的返回值: 只能是整数

函数的参数

函数通过使用$n 的形式来使用参数
通过函数名 参数 1 参数 2 来传递函数参数

参数 说明
$n 获取第 n 个参数;当 n>=10 时,需要使用${n}形式
$# 传递到函数的参数个数
$* 显示传递的所有参数
$@ 显示传递的所有参数
$? 显示最后一条命令状态,0 为成功,1 为失败

$*与$@区别

  • $*
#!/bin/bash
function diff(){
  for i in $@; do
    echo $i
  done

  for i in $*; do
    echo $i
  done

输出:

1
2
3
1
2
3
  • $@
  for i in "$@"; do
    echo $i
  done

  for i in "$*"; do
    echo $i
  done
}
diff 1 2 3

输出:

1
2
3
1 2 3

结果分析:
$@ 与 $*无差异
"$@"将每个参数作为字符串返回, "$\*"将参数整体作为字符串返回

函数的使用

# 无参数:
function_name
# 有参数
function_name 参数1 参数2

其他

函数定义在函数使用之间定义,Shell 是逐行执行的


comment: