これにはさまざまな方法がありますが、ここで紹介するのはその 1 つです。多くの Linux ディストリビューションにデフォルトでインストールされている「mktemp」ツールを使用します。
一時ファイルとディレクトリ
「mktemp」ツールはデフォルトで「GNU coreutils」パッケージに含まれており、その目的は一時ファイル/ディレクトリを作成することだけです。
一時ファイルと一時ディレクトリの作成
その基本的な使い方は非常に簡単です。コマンドラインからパラメータなしで「mktemp」を呼び出すと、ディスク上の/tmp内にファイルが作成され、その名前が画面に表示されます。見て:
$ mktemp
/tmp/tmp.JVeOizVlqk
ディレクトリの作成は、コマンド ラインに「-d」パラメータを追加するのと同じくらい簡単です。
$ mktemp -d
/tmp/tmp.sBihXbcmKa
実際に使用する
実際には、画面に表示されている一時ファイルまたはディレクトリ名は使用されません。これは、処理中に読み取りまたは書き込み可能な、常にアクセスできる変数に格納する必要があります。
以下の例には、ちなみに役に立たない小さなスクリプトがありますが、適切なステップバイステップを示しています。見て:
#!/bin/sh
#
#Create a temporary file
TEMP = `mktemp`
#Save all the content of the entered path
ls -l "$1"> $TEMP
#Read temporary file and list only directories
grep ^d $TEMP
sudo rm -f $TEMP
コマンド "mktemp" がサブシェル ("-crase の間) で呼び出され、その出力が変数 "TEMP" に格納されていることに注意してください。
次に、ファイルを読み書きできるようにするには、ls
、 grep
およびrm
コマンドで行ったように、ファイル名がある場所に変数を使用します。
ディレクトリを作成する必要がある場合は、既に述べたように、プロセスは同じで-d
、mktemp コマンド ラインに a を追加するだけです。
#!/bin/sh
#
TEMP = `mktemp -d`
cd $TEMP
.
.
.
sudo rm -rf $TEMP
多数の一時ファイルを作成する場合は、ファイルを作成するパスを指定する「-p」パラメーターを使用します。
#!/bin/sh
#
TEMP = `mktemp -d`
cd $TEMP
FILE1 = `mktemp -p $TEMP`
.
.
.
sudo rm -f $FILE1
sudo rm -rf $TEMP
それだけで。スクリプトで一時ファイルをより専門的に使用できるようになります。
tclsh
ただし、 [bourn shell ..の代わりにこれを実行したいの sh
ですが、いくつか試してみましたが、何も機能しませんでした。これが私が試したものの例です:
# Create a temporary file
exec sh -c "TEMP =`mktemp -d`"
set dir [cd $TEMP]
# Save all content from the entered path
exec ls -l "$1"> $TEMP
set entry [glob -type f $env(dir) *.jpg]
# Read temporary file and list only directories
puts $entry
私の最大の問題は、変数を作成することでした
# Create a temporary file
exec sh -c "TEMP =`mktemp -d`"
これは機能していません。
誰か私に無料サンプルをくれませんか?!