您好,登錄后才能下訂單哦!
這篇文章主要介紹“如何實現Shell腳本制作的終端會話回放功能腳本”,在日常操作中,相信很多人在如何實現Shell腳本制作的終端會話回放功能腳本問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”如何實現Shell腳本制作的終端會話回放功能腳本”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!
一、實現代碼
文件: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: " filename
logfile="$filename.timing.log"
sesfile="$filename.session"
if [ -e $sesfile ]; then
scriptreplay $logfile $sesfile
echo
else
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即可。
到此,關于“如何實現Shell腳本制作的終端會話回放功能腳本”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。