テンポラリファイルの作り方

複雑な処理を行う時には、テンポラリファイルを使うことがよくあります。
このような場合、次のことに注意しましょう。

(1)テンポラリファイルを作る場所と、ファイルの名前
(2)不要になった時点で削除する


(1)テンポラリファイルを作る場所と、ファイルの名前
単純に /tmp/temp.txt のような名前にすると、同じスクリプトを複数実行する場合に問題が発生します。
このような状況を想定して、テンポラリファイルを作成するときには、プロセスIDや時間で、テンポラリファイルの名前を修飾してあげましょう。
例)
CURRENT_DATE_SECOND=`date +%s`
TEMP_FILE_NAME1=/tmp/temp1_$$_${CURRENT_DATE_SECOND}.txt
TEMP_FILE_NAME2=/tmp/temp2_$$_${CURRENT_DATE_SECOND}.txt
:
first_process > ${TEMP_FILE_NAME1}
:

first_processは、何か適当な外部コマンドか、bash関数とします。
$$には、実行中のプロセスIDがセットされています。

また、date +%s は、1970/01/01 00:00:00 から経過した秒数を返します。

このようにすることで、テンポラリファイル名が、起動プロセスと起動した時間(秒)でユニークな名前になります。

(2)不要になった時点で削除する
処理が終わった後は、テンポラリファイルは不要になります。
残しておくとディスクスペースを圧迫しますので、忘れずに削除しましょう

0 件のコメント: