如何将进程替换中的变量值传递到该进程替换中的循环?
我正在将 csv 文件读入关联数组,在读取每一行时,我希望有一个循环if
来测试数组中的特定元素是否不为空(并为这些元素执行操作):
IFS=","
$csvfile="path/to/file.csv"
declare -A arr1
declare -A arr2
declare -A arr3
while read -r -a linedata
do
arr1["${linedata[1]}"]="${linedata[10]}"
arr3["${linedata[1]}"]="${linedata[0]}"
echo repeat -"${linedata[2]}"-
if [[ -n "${linedata[2]}" ]] && [[ ! "${linedata[2]}" == "" ]] ; then
arr2["${linedata[2]}"]="${linedata[10]}"
arr3["${linedata[2]}"]="${linedata[0]}"
else
echo skipped for "${linedata[2]}"
fi
done < $csvfile
我看到,虽然块echo
之前正确地if
打印了数组中的值linedata
,但数组中的值似乎甚至没有传递到条件if
(条件永远不会满足,尽管应该如此,以便else
块始终执行后数组元素值为空)。
我尝试过这样做< <($csvfile)
,但收到有关权限被拒绝的错误。
提前致谢