1

これにはさまざまな方法がありますが、ここで紹介するのはその 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`"

これは機能していません。

誰か私に無料サンプルをくれませんか?!

4

1 に答える 1