Home Backend Development PHP Tutorial Linux Shell to create recording and playback function scripts

Linux Shell to create recording and playback function scripts

Dec 20, 2017 pm 01:40 PM
linux shell Playback

I have seen two very interesting commands script and srciptreplay before, which can record the terminal session to a file. Today I will give you some interesting and meaningful operations.

1. Implementation code

File: 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
Copy after login


File: 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
Copy after login


2. Program Analysis

First of all, let’s talk about what these two files are used for. Record.sh is used to record what you execute. commands and screen output, and Replay.sh is used to play back the content recorded by Record.sh.

In Record.sh, you are first asked to enter a file name to save information, such as output, and then create two files in the program. The file names are the file names you entered plus different The suffix is ​​formed, such as output.timing.log and output.session, and then checks whether the input file already exists. If it exists, ask whether to overwrite the old file with the new file. If so, deletethe original If there is a file, create a new file and write data, if not, do no work. Enter a file name in Replay.sh, first determine whether the file exists, and play it if it exists.

In Record.sh, you can see that the script parameters are two files. In order to facilitate identification, I added a specific suffix to the entered file name, even on Linux The file suffix is ​​meaningless. One of the suffixes, .timing.log, is used to store timing information, describing when each command is run. The other file, with the suffix .session, is used to store command output. With these two files, the playback function can be realized. This is a bit like the playback function of the familiar lrc lyrics file under Windows, in my opinion.

Since there are two kinds of output, we need to use data flow redirection to output different output streams into different files. We can also see in Record.sh that we use 2> The information is written to the file *.timing.log through stderr, and the command execution information is written to the file *.session through >.

Replay.sh is relatively simple. It only needs to determine whether the input file exists before it can be played. If you want to play the file created in Record.sh above, you only need to enter output.


# I believe you have mastered the methods after reading these cases. For more exciting information, please pay attention to other related articles on the php Chinese website!

Related reading:

Detailed example of ajax implementation of uploading files without refreshing

Using jQuery+Ajax in PHP to implement paging Query function

AJAX implementation of simple registration page asynchronous request example code

The above is the detailed content of Linux Shell to create recording and playback function scripts. For more information, please follow other related articles on the PHP Chinese website!

Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

Video Face Swap

Video Face Swap

Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

Hot Topics

Java Tutorial
1663
14
PHP Tutorial
1264
29
C# Tutorial
1237
24
Linux Architecture: Unveiling the 5 Basic Components Linux Architecture: Unveiling the 5 Basic Components Apr 20, 2025 am 12:04 AM

The five basic components of the Linux system are: 1. Kernel, 2. System library, 3. System utilities, 4. Graphical user interface, 5. Applications. The kernel manages hardware resources, the system library provides precompiled functions, system utilities are used for system management, the GUI provides visual interaction, and applications use these components to implement functions.

How to check the warehouse address of git How to check the warehouse address of git Apr 17, 2025 pm 01:54 PM

To view the Git repository address, perform the following steps: 1. Open the command line and navigate to the repository directory; 2. Run the "git remote -v" command; 3. View the repository name in the output and its corresponding address.

vscode Previous Next Shortcut Key vscode Previous Next Shortcut Key Apr 15, 2025 pm 10:51 PM

VS Code One-step/Next step shortcut key usage: One-step (backward): Windows/Linux: Ctrl ←; macOS: Cmd ←Next step (forward): Windows/Linux: Ctrl →; macOS: Cmd →

What is the main purpose of Linux? What is the main purpose of Linux? Apr 16, 2025 am 12:19 AM

The main uses of Linux include: 1. Server operating system, 2. Embedded system, 3. Desktop operating system, 4. Development and testing environment. Linux excels in these areas, providing stability, security and efficient development tools.

How to run java code in notepad How to run java code in notepad Apr 16, 2025 pm 07:39 PM

Although Notepad cannot run Java code directly, it can be achieved by using other tools: using the command line compiler (javac) to generate a bytecode file (filename.class). Use the Java interpreter (java) to interpret bytecode, execute the code, and output the result.

How to run sublime after writing the code How to run sublime after writing the code Apr 16, 2025 am 08:51 AM

There are six ways to run code in Sublime: through hotkeys, menus, build systems, command lines, set default build systems, and custom build commands, and run individual files/projects by right-clicking on projects/files. The build system availability depends on the installation of Sublime Text.

laravel installation code laravel installation code Apr 18, 2025 pm 12:30 PM

To install Laravel, follow these steps in sequence: Install Composer (for macOS/Linux and Windows) Install Laravel Installer Create a new project Start Service Access Application (URL: http://127.0.0.1:8000) Set up the database connection (if required)

How to use VSCode How to use VSCode Apr 15, 2025 pm 11:21 PM

Visual Studio Code (VSCode) is a cross-platform, open source and free code editor developed by Microsoft. It is known for its lightweight, scalability and support for a wide range of programming languages. To install VSCode, please visit the official website to download and run the installer. When using VSCode, you can create new projects, edit code, debug code, navigate projects, expand VSCode, and manage settings. VSCode is available for Windows, macOS, and Linux, supports multiple programming languages ​​and provides various extensions through Marketplace. Its advantages include lightweight, scalability, extensive language support, rich features and version

See all articles