Linux

BASH:如何在 while 循環中查看命令歷史記錄?

  • November 19, 2018

我有一個簡單的 while 循環接受輸入:

#!/bin/bash
while true; do
   read -rep $'\n '"$USER"'> ' userInput
   echo "$userInput"
done

例子:

./input.sh 

username> command1
command1

username> command2
command2

是否可以有命令歷史記錄?這樣我就可以在鍵盤上按下以查看以前執行的命令(不離開 while 循環)?

您可以使用小的 Readline 包裝器rlwrap。這是一個簡潔的小工具,它為自己不實現它的實用程序提供命令歷史記錄。

您將rlwrap在腳本本身上使用:

rlwrap -a ./script.sh

這將保存一個名為的歷史文件~/.script.sh_history,並且不僅會在目前會話中使用該文件,而且還會在未來的會話中使用該文件來提供一種您可以單步執行的歷史記錄。

參見手冊rlwrap

rlwrap在大多數 Unices 上通常作為一個包提供,但也可以從其 GitHub 儲存庫中獲得。

引用自:https://unix.stackexchange.com/questions/482602