use*_*630 5 linux shell bash ubuntu shell-script
我有一个简单的 while 循环接受输入:
#!/bin/bash
while true; do
read -rep $'\n '"$USER"'> ' userInput
echo "$userInput"
done
Run Code Online (Sandbox Code Playgroud)
例子:
./input.sh
username> command1
command1
username> command2
command2
Run Code Online (Sandbox Code Playgroud)
是否可以有命令历史记录?这样我就可以按下键盘来查看以前执行的命令(不离开 while 循环)?
您可以使用小型 Readline 包装器rlwrap。这是一个简洁的小工具,可为未自行实现的实用程序提供命令历史记录。
您将rlwrap在脚本本身上使用:
rlwrap -a ./script.sh
Run Code Online (Sandbox Code Playgroud)
这将保存一个名为的历史文件,~/.script.sh_history并且不仅会在当前会话中使用该文件,还会在未来的会话中使用该文件来提供一种您可以逐步浏览的历史记录。
参见手册rlwrap。
rlwrap在大多数 Unices 上通常作为一个包提供,但也可以从其 GitHub 存储库中获得。
| 归档时间: |
|
| 查看次数: |
581 次 |
| 最近记录: |