Linux
BASH:如何在 while 循環中查看命令歷史記錄?
我有一個簡單的 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 儲存庫中獲得。