Shell函数调用

脚本放置多个函数

可以在脚本中放置多个函数,脚本执行按照调用函数的顺序执行这些函数。
脚本示例如下:

#!/bin/bash

#函数1:输出星期
show_week() {
  for day in monday tuesday wednesday
  do
    echo -n "$day "
  done
}

#函数2:输出数字
show_number() {
  for (( num = 1; num <= 7; num++ ))
  do
    echo -n "$num "
  done
}

#函数3:显示1~7的平方
show_square() {
  i=0
  until [[ "$i" -gt 7 ]]
  do
    let "square=i*i"
    echo "$i * $i = $square"
    let "i++"
  done
}

#顺序执行函数
show_week
show_number
show_square

脚本运行结果如下:

monday tuesday wednesday 
1 2 3 4 5 6 7 
0 * 0 = 0
1 * 1 = 1
2 * 2 = 4
3 * 3 = 9
4 * 4 = 16
5 * 5 = 25
6 * 6 = 36
7 * 7 = 49

函数间相互调用

Shell编程中,函数间可以相互调用,调用时会停止当前运行的函数转去运行被调用的函数,直到调用的函数运行完,再返回当前函数继续运行。
脚本示例如下:

#!/bin/bash

#函数1
show_week() {
  echo "day"
}

#函数2
show_number() {
  echo "number"
}

#函数3
show_square() {
  echo "square"
}

#选择调用函数
choice() {
  echo "input: "
  read char
  case $char in
    w)
      show_week;;
    n)
      show_number;;
    s)
      show_square;;
    *)
     echo "You input is wrong!";;
   esac
}

#调用函数choice
choice

脚本运行结果如下:

$ ./test.sh
input:
w
day
$ ./test.sh
input:
t
You input is wrong!
$

一个函数调用多个函数

Shell编程中,允许一个函数调用多个函数,在该函数调用其他函数时,需要按照顺序执行。
脚本示例如下:

#!/bin/bash

#函数1
show_week() {
  echo "day"
}

#函数2
show_number() {
  echo "number"
}

#调用两个函数
show_two() {
  show_week
  show_number
}

#调用总函数
show_two

脚本运行结果如下:

day
number