プロセス置換で名前付きファイル記述子を使用しようとしています。
次のコードを書きましたが、うまくいきません。
# Open named file descriptors and associate to Process Substitution result
exec {folder1_files_list} < <( ls -v "${FOLDER1_PATH}"/* )
exec {folder2_files_list} < <( ls -v "${FOLDER2_PATH}"/* )
IFS=$'\n' read -r folder1_filename -u "${folder1_files_list}"
IFS=$'\n' read -r folder2_filename -u "${folder2_files_list}"
# Close named file descriptors
exec {folder1_files_list}<-
exec {folder2_files_list}<-
エラーは次のとおりです。
exec: {folder1_files_list}: not found
bashのマニュアルを読んだが、何かが抜けているかもしれない
答え1
次世代の完全な作業コードは次のとおりです。
exec {folder1_files_list}< <( ls -v -1 "${FOLDER1}"/* )
# Usage example:
# If I want to output the entire contents of the file descriptor,
# then I should write:
# cat - <&$folder1_files_list
exec {folder2_files_list}< <( ls -v -1 "${FOLDER2}"/* )
IFS=$'\n' read -r -u $folder1_files_list folder1_filename
IFS=$'\n' read -r -u $folder2_files_list folder2_filename
exec {folder1_files_list}<&-
exec {folder2_files_list}<&-