0
如何分配給一個變量在Bash中的數組元素,使得該陣列是指數本身由一個變量(一個最微不足道的事情在任何語言,但在bash似乎特別?)猛砸使用變量作爲索引陣列
我試過很多變種,如:
let temp1=list1[list1Index]
或
temp1=${list1[$list1Index]}
他們沒有明顯的工作。沒有錯誤,但沒有顯示回聲$ 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"
'$ array [$((index))]'? – daniu
您的第二種方法''{arr [$ idx]}「'應該有效。向我們展示你的陣列。 – randomir
'list1 [list1Index]'實際上也適用,如果它是一個非關聯數組而'list1Index'的名字是一個包含一個整數值的變量。也就是說 - (1)不,它不是「顯而易見的」,(2)我們真的需要一個包含在問題中的[mcve],以便其他人可以重現所聲稱的行爲。 –