#navi(../)

* ユニークな一時ファイル名を作成する [#r66acfe9]
ユニークな値の一時ディレクトリやファイルの作成に''mktemp''コマンドがありますが、PIDを利用することもできます。~
(PIDはプロセス番号のことです)

mktempについては[[逆引きUNIXコマンド/ユニークな値の一時ディレクトリ・ファイルを作成する方法]]を参照してください。

#br
#htmlinsertpcsp(linux_ads_top.html,linux-sp.html)

** PIDの利用 [#tcefe2e7]
シェルスクリプトの特殊な変数として$$があります。~
$$は動作しているシェルスクリプトのプロセスID(PID)が格納されています。

以下のサンプルシェルスクリプトを複数起動してプロセスIDを利用しているため、ユニークなファイル名(ディレクトリ名)を作成することができます。~
trapコマンドを利用してシグナルを受信したらワークファイルを削除する後処理を追加してあります。~
trapコマンドについては、[[逆引きシェルスクリプト/シグナルを受ける方法]]を参照のこと。

#ref(uniq_file.sh)

 #!/bin/bash
 
 trap "rm /tmp/temporary.$$; exit 1" 1 2 3 15
 
 while :
 do
   date >> /tmp/temporary.$$
   sleep 1
 done

** 実行例 [#g3e4a8de]
以下の通り、複数の本スクリプトを起動すると/tmp/ディレクトリにワークファイルができていることが確認できます。~
ワークファイルの後ろにはPIDが付加されています。~
また、Ctrl+Cを押された時、上記のサンプルスクリプトではワークファイルを削除しスクリプトが終了します。
#ref(uniq_file-01.gif)

#br
#htmlinsertpcsp(linux_ads_btm.html,linux-sp.html)
#br

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS