shell脚本中数组作为参数传递
# shell 脚本中数组作为参数传递
在 shell 脚本中将数组作为参数传递给函数或者其它脚本,遇到的最大的问题是如何将存着字符串(中间包含空格的字符串)的数组正确传递并解析。方法如下:
arr_1=(1 2 3 4 5)
arr_2=(how are you)
arr_3=("hello world" "hi shell" "oh my god")
function GetStr() {
# 加括号是为了将传入的参数重新组织成数组
arr=("$@")
echo "arr len: ${#arr[*]}"
for i in "${arr[@]}"; do
echo $i
done
}
GetStr "${arr_1[@]}"
GetStr "${arr_2[@]}"
GetStr "${arr_3[@]}"
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
结果如下:
PS:
$@
: 将每个参数都看作单独的单词
$*
: 将所有参数看作一个单词
上次更新: 2022/06/17, 07:22:19