中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何實現Shell腳本制作的終端會話回放功能腳本

發布時間:2021-09-28 16:17:00 來源:億速云 閱讀:127 作者:iii 欄目:開發技術

這篇文章主要介紹“如何實現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腳本制作的終端會話回放功能腳本”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

惠水县| 郎溪县| 梅州市| 洪洞县| 溧水县| 灯塔市| 六安市| 观塘区| 清远市| 长宁县| 长汀县| 曲麻莱县| 新化县| 柘荣县| 比如县| 杭锦旗| 天全县| 清涧县| 阜宁县| 石狮市| 留坝县| 中西区| 额济纳旗| 九龙坡区| 额尔古纳市| 齐河县| 灵山县| 台南县| 兰州市| 屯留县| 迁安市| 双江| 宜州市| 梓潼县| 长泰县| 杨浦区| 家居| 安乡县| 平阳县| 治多县| 广丰县|