深入探索Bash脚本:函数与文本处理
1. 数组传递
在Bash脚本中,传递给函数的值并非总是单个值,有时需要传递数组。以下是传递数组作为参数的示例:
#!/bin/bash
myfunc() {
arr=$@
echo "The array from inside the function: ${arr[*]}"
}
test_arr=(1 2 3)
echo "The original array is: ${test_arr[*]}"
myfunc ${test_arr[*]}
从结果可以看出,函数会原样返回所使用的数组。需要注意的是,这里使用 $@ 来获取函数内部的数组。如果使用 $1 ,则只会返回数组的第一个元素,示例如下:
#!/bin/bash
myfunc() {
arr=$1
echo "The array from inside the function: ${arr[*]}"
}
my_arr=(5 10 15)
echo "The original array: ${my_arr[*]}"
myfunc ${my_arr[*]}
由于使用了 $1 ,所以仅返回数组的第一个元素。
2. 变量作用域
默认情况下,在函数内部声明的任何变量都是全局变量,这意味着该变量可以在函数内外无问
超级会员免费看
订阅专栏 解锁全文
88

被折叠的 条评论
为什么被折叠?



