相关疑难解决方法(0)

是否有 POSIX shell 替代 read -e?

如何从通用 (POSIX) shell实现read -e(通过readline和 中打开行编辑功能bash)的效果?我不想因为这个命令而失去 POSIX 兼容性。

shell bash posix readline

6
推荐指数
1
解决办法
3393
查看次数

逐个字符读取和处理字符串,但允许用户对输入进行简单的行编辑

我想从终端增量读取一行输入,并允许用户一些基本的行编辑功能;INS, DEL, 右, 左 HOME, END, Backspace

每次修改字符串时,我都想对其进行处理,以对文本文件进行增量正则表达式搜索。

这些编辑键和其他键会生成多个输入字符,这
使得解释输入变得相当困难,例如 C-Left 生成 6 个字符。

有没有一种简单的方法来实现这种逐字符的可编辑输入?
我特别想知道如何在 bash 中执行此操作,因为其余的处理将是 bash .. 其他建议也欢迎..

这是我开始的方式,但它有点失控,有这么多潜在的控制代码......

#!/bin/bash
IFS=$'\n' 
while true ;do
  read -n 1 c
  ((${#c}==0)) && break # Exit the loop. Input length is 0  
                        # ie. The user has pressed Enter
  echo "xx=$(echo -n "$c"|xxd -p)="
  # 1b 5b 32 7e  "INS"
  # 1b 5b 33 7e  "DEL"
  # 1b 5b 43     "RIGHT"
  # 1b 5b 44     "LEFT"
  # 1b 5b 46 …
Run Code Online (Sandbox Code Playgroud)

bash terminal text-processing

5
推荐指数
1
解决办法
3194
查看次数

标签 统计

bash ×2

posix ×1

readline ×1

shell ×1

terminal ×1

text-processing ×1