gpt4 book ai didi

linux - bash - 使用 int 变量作为引用传递给函数的位置参数的索引

转载 作者:太空狗 更新时间:2023-10-29 12:28:09 25 4
gpt4 key购买 nike

我想使用一个变量作为索引值来引用传递给脚本的位置变量,例如:

x=101
y=201
z=301

foo(){

i=0;
(( i+=1 )); # i=1
echo "${$i}"; # parameter 1
(( i+=1 )); # i=2
echo "${$i}"; # parameter 2
(( i+=1 )); # i=3
echo "${$i}"; # parameter 3
}

foo x y z

输出:

101
201
301

数组和循环在这种情况下无济于事,我需要一个简单的方法来递增一个 int 变量并使用这个值作为索引来检索传递的方法参数。

建议?

最佳答案

我相信你需要在这里进行间接变量扩展:

x=101
y=201
z=301

foo() {
local i
local v
for ((i=1; i<=3; i++ )); do
v="${!i}" # will get x, y, z
echo "${!v}" # will get values of $x, $y, $z
done
}

然后称它为:

foo x y z

101
201
301

关于linux - bash - 使用 int 变量作为引用传递给函数的位置参数的索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35709133/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com