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

來源:互聯網
上載者:User
之前看到過倆個很有意思的命令script和srciptreplay,可以把終端的會話記錄到一個檔案裡,今天就給大家做一下有趣並有意義的操作。

一、實現代碼

檔案:Record.sh

#! /bin/bash# Filename:Record.sh  read -p "Please input the sesson filename you want to creat: " filename;  sesfile="$filename.session"logfile="$filename.timing.log"  if [ -e $sesfile ];then  echo "$sesfile is Exsit,Creat session file fault!";  read -p "If you want to reload the file? [Y/N]: " flag;  if [ "$flag" = "Y" ];then    rm $sesfile $logfile;    script -t 2> $logfile -a $sesfile;  else    echo "Nothing to do!";  fi    else  script -t 2> $logfile -a $sesfile;fi


檔案:Replay.sh

#! /bin/bash# Filename:Replay.sh  read -p "Please input the session filename: " filenamelogfile="$filename.timing.log"sesfile="$filename.session"if [ -e $sesfile ]; then  scriptreplay $logfile $sesfile  echoelse  echo "$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即可。


相信看了這些案例你已經掌握了方法,更多精彩請關注php中文網其它相關文章!

相關閱讀:

執行個體詳解ajax實現無重新整理上傳檔案功能

PHP中使用jQuery+Ajax實現分頁查詢功能

AJAX實現簡單的註冊頁面非同步請求執行個體代碼

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.