Skip to content

函数

与别名(alias)的区别是,别名只适合封装简单的单个命令,函数则可以封装复杂的多行命令

定义

shell
#! /bin/bash

# 第一种
fn() {
  echo "Hello $1" # $1~$9:函数的第一个到第9个的参数
}

# 第二种
function fn() {
  echo "Hello $1"
}

# 调用时,就直接写函数名,参数跟在函数名后面
fn 123 # Hello 123

注意点

Bash 函数体内直接声明的变量,属于全局变量,整个脚本都可以读取

local命令声明的$foo变量,只在函数体内有效,函数体外没有定义

shell
#! /bin/bash

fn() {
  name=chaos # 直接声明的变量外部可以读取
  local foo=132 # local声明的变量外部无法读取
}

fn # 要先调用一下

echo "name: $name"  # chaos
echo "foo: $foo" # 空白