在bash中以交互方式阅读

时间:2016-01-07 04:37:59

标签: bash readline

我使用以下代码以交互方式从用户那里获取输入, 从而允许用户在不删除整行的情况下对输入进行更改。

#! /bin/bash

while :
do
    echo -n "prompt# "
    read -e input
done

问题:

它还允许我删除“提示#”,我不想发生这种情况。 在任何情况下,我都不希望用户删除“提示#”。 我已尝试在read命令中使用各种选项但无法弄明白。 我怎样才能做到这一点?

编辑:
导致问题的一系列事件:
我运行上面的脚本并输入“你好” 2.然后我将光标移动到“hello”中的“e”和“按住”退格一段时间,导致删除“提示#”
3.如果你没有输入任何字符,它可以正常工作并且不会删除提示,但如果你输入一个空格或任何字符,然后按退格键,那么它会混淆提示。

看看下面的快照 的快照bash readline prompt deletion

1 个答案:

答案 0 :(得分:2)

来自4ae1e1的评论:

您应该使用内置的快速支持,或者您自己使用。

read -p 'prompt# ' -e input