Bash 如何使用函数返回多个数组
我编写了一个返回数组的函数:Bash 如何使用函数返回多个数组,bash,Bash,我编写了一个返回数组的函数: create(){ my_list=("a" "b" "c") echo "${my_list[@]}" } result=$(create) for var in result do echo $var done 现在,我想扩展它以返回多个数组。 例如,我想写这样的东西: create(){ my1=("1" "2") my2=("3","4") my3=("5","6") echo "${my1[@]}
create(){
my_list=("a" "b" "c")
echo "${my_list[@]}"
}
result=$(create)
for var in result
do
echo $var
done
现在,我想扩展它以返回多个数组。
例如,我想写这样的东西:
create(){
my1=("1" "2")
my2=("3","4")
my3=("5","6")
echo "${my1[@]} ${my3[@]} ${my3[@]}"
}
我想得到每个返回的数组:
res1= ...
res2= ...
res3= ...
有人能给我一个解决方案吗?
谢谢您需要在循环时使用
阅读
while read -r val1 val2; do
arr1+=("$val1")
arr2+=("$val2")
done < file.txt
这就产生了
a
1
b
2
c
3
不是
为什么你不能在全局上下文中维护一个变量,返回数组不是设计代码的最佳方法如果你能让我们知道你的需求,肯定有更好的方法可以做到这一点使用真正的编程语言;您可以输出一个或多个数组的元素。请尝试在create
内部设置my_list=(“a b”“c d”“e f”)
,然后查看发生了什么。
a
1
b
2
c
3
a 1
b 2
c 3