bash shell function 数组传递 和单个元素一起传递
时间: 2024-05-15 11:13:20 浏览: 127
在 Bash shell 中,可以通过以下方式将数组和单个元素一起传递给函数:
```bash
#!/bin/bash
# 定义一个接收数组和单个元素的函数
function my_func() {
local arr=("${!1}")
local var=$2
# 遍历数组中的元素
for i in "${arr[@]}"; do
echo "$i"
done
# 输出单个元素
echo "$var"
}
# 定义一个数组和一个单个元素
my_array=("apple" "banana" "orange")
my_var="pear"
# 调用函数并传递数组和单个元素
my_func "my_array[@]" "$my_var"
```
在上面的代码中,我们定义了一个名为 `my_func` 的函数,该函数接受两个参数:一个数组和一个单个元素。在函数中,我们使用 `local` 关键字将传递的数组和单个元素保存到本地变量中。为了传递数组,我们使用间接引用(indirect referencing)技巧 `${!1}`,其中 `1` 是传递的第一个参数,即数组名。然后,我们使用 `for` 循环遍历数组中的元素,并使用 `echo` 命令输出每个元素。最后,我们使用 `echo` 命令输出传递的单个元素。
在主程序中,我们定义了一个数组 `my_array` 和一个单个元素 `my_var`。然后,我们调用函数 `my_func` 并传递数组和单个元素作为参数。注意,在传递数组时,我们使用 `my_array[@]` 形式的引用,确保传递整个数组而不是仅传递第一个元素。
阅读全文