Упростите свою логику.Исключите явный субколл до bash
, если только для этого нет веской причины, которого вы здесь не перечислили, и перепишите свою функцию для обработки итераций внутри нее.
export id_from_doc=(1 2)
file='file/path'
copy_from_tar(){
echo 'entered func'
echo "${id_from_doc[@]}"
echo $file
for f in "${id_from_doc[@]}" # or whatever you really wanted
do : whatever logic was going to be here - e.g.
foo-program "$f" "$file" > "$f.ext"
done
}
И, если возможно (это практически всегда возможно), используйте передачу аргументов вместо глобальных.