gpt4 book ai didi

linux - 访问引用两次的变量 UNIX

转载 作者:太空宇宙 更新时间:2023-11-04 13:00:59 25 4
gpt4 key购买 nike

这是一个简单的问题,但我有变数

classNext1="Exists!"
classNext2="Exists!"
classNext3="Does not exist yet!"
classNext4="Does not exist yet!"

我试图找出下一个变量,下一个不等于 "Exists!"

的变量

我有这个 while 循环

i=0
while [ $i -lt 10 ]
do
i=`expr $i + 1` # Increment i
temp="extraClass$i"
if [ "$($temp)" != 'Exists!' ];then
echo "SUCUDESSS"
nextClass="extraClass$i"
break
fi
echo $temp
done

列表中的下一个类是 classNext3,但它只是去分配 nextClass=nextClass1

所以 if 语句在第一次迭代中总是为真。问题是 $temp 等于 extraClass$i,它在第 i 次迭代时实际上不等于 $extraClass($i) 的值。我将如何构造它,以便 if 语句实际获得 $extraClass($i) 的值,而不是文字字符串 "extraClass($i)"

最佳答案

要使用变量的值作为要访问的变量的名称,请使用变量间接寻址,如说明here .

if [ "${!temp}" != 'Exists!' ]; then

但是,每当您发现自己用数字后缀命名变量,并希望动态访问它们时,实际上总是意味着您应该使用数组而不是单独的变量。这几乎适用于任何编程语言。

关于linux - 访问引用两次的变量 UNIX,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33884274/

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