Bash使用变量作为数组的索引

时间:2017-10-19 21:17:58

标签: arrays bash variables

如何在Bash中为变量分配一个数组元素,使得数组本身就是一个变量索引(在任何语言中都是最琐碎的东西,但在bash中看起来很特别?)

我尝试了很多变体,例如:

let temp1=list1[list1Index]

 temp1=${list1[$list1Index]}

它们都没有明显的效果。没有错误,但echo $ temp1没有显示任何内容 我该怎么办?

这里是完整的代码(路径的虚拟名称):

#! /bin/bash
pathFrontalGray='/mnt/c/Users/dummyName/'

list1=('x' 'y' 'z' 'a' 'b' 'c')
prefix1='dummyName'
echo $pathFrontalGray
touch fileNamesGray.txt
ls $pathFrontalGray > fileNamesGray.txt
fileGray='fileNamesGray.txt'
list1Index=0
i=0
while IFS= read -r line
do
    let i=i+1
    echo $i
    #means if NOT divisibe by 9  -> if <expr evaluated to 0> -> equiv if false
    if (($i % 9));then
        let list1Index=list1Index+1
    fi

    temp1=$list1[$((list1Index))]
    echo $temp1
    #mv $pathFrontalGray$line $prefix1${list1[$list1Index]}
    # display $line or do somthing with $line
    #printf '%s\n' "$line"
done <"$fileGray"

1 个答案:

答案 0 :(得分:0)

我发现了问题。对不起其实

curr1=${list1[index1]}

工作正常。问题是,在显示的许多其他东西中,它的回声丢失了。抱歉给你带来不便。我想我有点累了......