shell脚本遍历调用函数指针数组成员,指针成员可以接收入参
时间: 2023-12-14 08:50:27 浏览: 100
在shell脚本中,可以通过定义一个函数指针数组来实现遍历调用函数的功能。具体实现步骤如下:
1. 定义函数指针数组
```bash
declare -a func_arr
```
2. 定义函数并将其指针存入数组
```bash
function func1() {
echo "func1: $1"
}
func_arr[0]=func1
function func2() {
echo "func2: $1 $2"
}
func_arr[1]=func2
```
注意,函数指针的定义方式为 `func_arr[index]=function_name`。
3. 遍历函数指针数组并调用函数
```bash
for i in ${!func_arr[@]}
do
${func_arr[$i]} arg1 arg2
done
```
其中,`${!func_arr[@]}` 表示遍历 `func_arr` 数组的所有索引值,`${func_arr[$i]}` 表示获取 `func_arr` 数组中下标为 `$i` 的元素即函数指针,并通过 `${func_arr[$i]} arg1 arg2` 调用该函数,其中 `arg1` 和 `arg2` 是传递给函数的参数。
完整示例代码如下:
```bash
#!/bin/bash
declare -a func_arr
function func1() {
echo "func1: $1"
}
func_arr[0]=func1
function func2() {
echo "func2: $1 $2"
}
func_arr[1]=func2
for i in ${!func_arr[@]}
do
${func_arr[$i]} arg1 arg2
done
```
阅读全文