Вот пример кода:
#!/bin/bash
while read fName ; do
filePvmLib="${fName}"
done <<< "$( find /bin -type f -iname "*bash*" 2>/dev/null )"
echo "Дочерняя fName=${fName}; Из родительского пространства filePvmLib=${filePvmLib};"
Две переменные - filePvmLib и fName. После выхода из цикла fName "уничтожается". Как это правильно объяснить?
Если вызывается другой экземпляр Bash. filePvmLib создаётся и существует в "родительском", в "корневом" экземпляре Bash. Внутри цикла fName также доступна, существует для родителя на равне с filePvmLib, а по выходе fName уничтожается.