核心指令
script -t 2>[time.file] (-a output.file)
scriptreplay [time.file] [output.file]
使用說明
- script/scriptrelpay實作依賴于一個時間點檔案time.file和一個輸出檔案output.file。
-
執行scriptreplay可以模拟之前錄制的行為,但務必注意:回放并不能産生任何實際的改變
(例如我在錄制期執行了
但是回放時并不能真的建立這個檔案)touch 1.cpp
- 是以此指令一般用于示範,其最大的優點在于可複制兩個文本檔案,并在不同裝置間回放該腳本。
關于參數的說明
- 若想實作完整的錄制功能,就必須有一個time檔案,檔案名可以任意取但一定注意
後面的-t
。這條語句是将stderr重定向輸出到檔案。缺少這段語句将失去模拟回放的功能。2>
- output.file存儲了全部的輸出資訊,也是我們回放資訊的來源。
的意義是将輸出append到檔案。之是以這麼做是因為在錄制期間我們已經對指令行作了有效的輸出,是以若要保留這些輸出資訊,必須把輸出流複制一下,也就是append。-a
- 如果不添加
這段語句,則預設生成一個名為-a output.file
的檔案,可以使用這個預設檔案作為output.filetypescript
- output.file中除了輸出的文本資訊外,還儲存了光标移動的資訊。
- 錄制腳本後用exit推出
- 如果開始一次新的錄制,應該建立兩個新的記錄檔案而非使用原來的。因為腳本的append方式并不會将原來檔案内容清空而是在末尾添加。
一個簡單的例子
錄制腳本
$ script -t >time.file -a output.file
#開始錄制了
$ ls -al
c c c
#執行一個指令
$exit
#結束錄制
回放腳本
$ scriptreplay time.file output.file
#腳本将會自動回放