如何在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"
答案 0 :(得分:0)
我发现了问题。对不起其实
curr1=${list1[index1]}
工作正常。问题是,在显示的许多其他东西中,它的回声丢失了。抱歉给你带来不便。我想我有点累了......