一時ファイル(配列の名前)の作成/削除[閉じる]

一時ファイル(配列の名前)の作成/削除[閉じる]

こんにちは。一時ファイルを作成したら削除したいです。配列に変数名があります。作成はうまくいきますが、削除に問題があります。ありがとう

FILES=( a b c d e f g h)

for i in "${FILES[@]}"; do
    eval "$i"=`mktemp`
done

ベストアンサー1

Bashシェルが十分に新しいもの(バージョン4以降)の場合は、連想配列を使用してファイル名を保存することをお勧めします。

declare -A filenames
for i in "${FILES[@]}"; do
  filenames[$i]=$(mktemp)
done

ジョブが完了したら簡単に削除できます。

rm -- "${filenames[@]}"

おすすめ記事