iT邦幫忙

DAY 17
3

我與BASH shell scripting的每一天系列 第 17

我與BASH的每一天 - [17] 建立自動化的暫存檔 - mktemp

我在程式裡常常會用到一些檔案來暫時儲存運算過程的中間結果,比如說我先把需要的內容**grep**出來,因為還要二次處理,所以放到一個檔案中暫存著,待最後程式結束前再將它清除。這個動作很簡單,只需要一個重導向符號到一個檔案,就能達成: > file-name

但是當我的程式規模變大,而且暫存檔的用量變多變頻繁時,我便要開始傷腦筋有關暫存檔的命名,以避免寫錯或讀錯檔案。

利用mktemp指令可以協助解決這個問題,我只需透過他就可以取得一個不會重複的暫存檔名,我還可以設定它們的命名規則,包含儲存路徑,到程式結束時就把那的路徑下的所有暫存檔清除即可。

# 將暫存檔名指定給OUT變數
OUT="$(mktemp)"

# 指定暫存檔的路徑為/tmp,而且檔名格式為output.在接上6個任意數字(自動產生)
mktemp /tmp/output.XXXXXX

[本系列文章]

我與BASH的每一天 - [1]利用bc命令來取得數字字串中的特定欄位值
我與BASH的每一天 - [2]直取字串變數中的特定欄位值
我與BASH的每一天 - [3] 利用awk來擷取特定欄位
我與BASH的每一天 - [4] 利用awk來擷取特定欄位-2
我與BASH的每一天 - [5] 利用awk來擷取特定欄位-3
我與BASH的每一天 - [6] 利用cut來擷取特定欄位
我與BASH的每一天 - [7] grep指令的妙用 - 1
我與BASH的每一天 - [8] grep指令的妙用 - 2
我與BASH的每一天 - [9] 正規化表示法 - 1
我與BASH的每一天 - [10] 正規化表示法 - 2
我與BASH的每一天 - [11] 正規化表示法 - 3
我與BASH的每一天 - [12] 正規化表示法 - 4
我與BASH的每一天 - [13] sed - 1
我與BASH的每一天 - [14] sed - 2
我與BASH的每一天 - [15] sed - 3
我與BASH的每一天 - [16] 多條件選擇 - case


上一篇
我與BASH的每一天 - [16] 多條件選擇 - case
下一篇
我與BASH的每一天 - [18] if 條件判斷的正規化用法
系列文
我與BASH shell scripting的每一天31

1 則留言

0
abbyshiue
iT邦新手 5 級 ‧ 2014-08-14 17:32:20

請問「在接上6個任意數字(自動產生)」是什麼意思? mktemp /tmp/output.XXXXXX 並不會自己吐6位數的亂碼。

我要留言

立即登入留言