Linux Shell 之 製作錄製回放功能指令碼

來源:互聯網
上載者:User
不久前在書上看到兩個很有趣的命令——script和srciptreplay,它可以把終端會話記錄到一個檔案中,即是說我們可以通過終端會話來來製作命令列技巧視頻教程,也可以與他人分享會話檔案,而且產生的檔案還只是一般的文字檔,檔案的大小非常小,真是非常有意思。下面是本人寫的兩個shell程式,來方便進行這個有趣並有意義的操作。一、實現代碼檔案:Record.sh
#! /bin/bash# Filename:Record.shread -p "Please input the sesson filename you want to creat: " filename;sesfile="$filename.session"logfile="$filename.timing.log"if [ -e $sesfile ];thenecho "$sesfile is Exsit,Creat session file fault!";read -p "If you want to reload the file? [Y/N]: " flag;if [ "$flag" = "Y" ];thenrm $sesfile $logfile;script -t 2> $logfile -a $sesfile;elseecho "Nothing to do!";fielsescript -t 2> $logfile -a $sesfile;fi 

檔案:Replay.sh

#! /bin/bash# Filename:Replay.shread -p "Please input the session filename: " filenamelogfile="$filename.timing.log"sesfile="$filename.session"if [ -e $sesfile ]; thenscriptreplay $logfile $sesfileechoelseecho "$filename is NOT Exsit!"fi

二、程式分析首先來說說這兩個檔案分別是用來幹什麼的吧,Record.sh是用來記錄你所執行的命令和螢幕的輸出的,而Replay.sh是用來回放Record.sh所錄製的內容的。在Record.sh中,首先要求你輸入一個用來儲存資訊的檔案名稱,如output,然後在程式中建立兩個檔案,檔案名稱為你所輸入的檔案名稱加上不同的尾碼形成,如output.timing.log和output.session,然後檢查所輸入的檔案是否已存在,若存在,則詢問是否以新的檔案覆蓋舊的檔案,若是,則刪除原有檔案,建立新的檔案並寫入資料,若否,則不做任何工作。Replay.sh中輸入一個檔案名稱,首先判斷該檔案是否存在,存在則播放。在Record.sh中,可以看到script的參數是兩個檔案,為了便於辨認,我在輸入的檔案名稱加上了特定的尾碼,即使在Linux上,檔案尾碼是沒意義的,其中一個尾碼的.timing.log,用於儲存時序資訊,描述每一個命令在何時運行,另一個檔案,尾碼為.session,用於儲存命令輸出。有了這兩個檔案就可以實現播放功能,這就有點像大家熟悉的Windows下的lrc歌詞檔案的播放功能吧,個人覺得。而由於有兩種輸出,所以就要用資料流重新導向,把不同的輸出資料流輸出不同的檔案中,在Record.sh中我們也可以看到,我們用2>把時序資訊通過stderr寫入檔案*.timing.log,通過>把命令執行資訊寫入檔案*.session。而Replay.sh則相對簡單,它只需要判斷輸入的檔案是否存在,就可以進行播放。如你想播放上面Record.sh中製作的檔案,則只需要輸入output即可。非常有意思吧!

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.