emanuele6 1690291938 learn # exec {afd}< <(seq 1 10); declare -A assign=(); lines=() do_assign='assign[0${lines[${#lines[@]}]=$(read -ru "$afd"&&printf %s\\n "$REPLY")}]' do_eof_err=') end of file'; declare -n a='lines[do_assign, $? ? do_eof_err : ${#lines[@]}]'; echo "$a" "$a" "$a" "$a"; echo "$a" "$a" "$a" "$a" "$a" "$a"; echo "$a" emanuele6 1690292000 forget emanuele6 1690292049 learn # exec {afd}< <(seq 1 10); declare -A assign=(); lines=() do_assign='assign[0${lines[${#lines[@]}]=$(read -ru "$afd"&&printf %s\\n "$REPLY")}]' do_get_ec='_[_ = $?, 0]' do_eof_err=') end of file'; declare -n a='lines[do_assign, do_get_ec ? do_eof_err : ${#lines[@]}]'; echo "$a" "$a" "$a" "$a"; echo "$a" "$a" "$a" "$a" "$a" "$a"; echo "$a"