bash: 프로세스 대체에서 루프에 변수를 전달하는 방법

bash: 프로세스 대체에서 루프에 변수를 전달하는 방법

프로세스 대체에서 해당 프로세스 대체의 루프로 변수 값을 전달하는 방법은 무엇입니까?

ifcsv 파일을 연관 배열로 읽고 있는데 각 행을 읽을 때 배열의 특정 요소가 비어 있지 않은지 테스트하고 해당 요소에 대해 작업을 수행하는 루프를 갖고 싶습니다 .

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올바르게 인쇄하는 동안 배열의 값이 조건에 전달되지도 않은 것 같습니다 . ( 배열 요소가 일치해야 하지만 조건이 충족되지 않습니다.) 블록이 실행된 후에는 값이 항상 비어 있습니다.)iflinedataifelse

이 작업을 시도했지만 < <($csvfile)권한이 거부되었다는 오류가 발생했습니다.

미리 감사드립니다

관련 정보