如何使用 BASH 和 ZSH 向用户呈现可编辑的输入?
How to present editable input to a user with BASH and ZSH?
我需要在 shell 脚本中接受用户输入,该脚本可以 运行 BASH 和 ZSH。我习惯于在其他语言中使用 readline
,但这在 shell 脚本中似乎不是一个可行的选项。
示例提示可能是:
Please enter the value> 1234_
我如何向用户提供可编辑的输入,该输入具有可编辑(退格)且与两个 shell 兼容的默认值?
如果我没有误会...
在 "Backspace" 功能方面,删除最后一个字符并添加一些新的 ..
这在两个 shell 中都有效,脚本中有一个简单的 "read"。
echo -n "Enter value > "
read v
echo $v
如果您还有其他问题,能否改一下措辞以使您的问题更清楚?
你用什么(示例代码)。
你在编辑方面究竟做了什么(只有 BS 还是你的意思是行编辑命令 CTRL-A,等等)
结果/错误是什么,您想修复什么。
谢谢
用户 @cyrus 在评论中提到,但最好直接作为答案:
read -e -p 'Please enter the value> ' -i '1234' myvar
echo $myvar
导致可编辑的默认值 1234
Please enter the value> 1234
1234
我需要在 shell 脚本中接受用户输入,该脚本可以 运行 BASH 和 ZSH。我习惯于在其他语言中使用 readline
,但这在 shell 脚本中似乎不是一个可行的选项。
示例提示可能是:
Please enter the value> 1234_
我如何向用户提供可编辑的输入,该输入具有可编辑(退格)且与两个 shell 兼容的默认值?
如果我没有误会... 在 "Backspace" 功能方面,删除最后一个字符并添加一些新的 .. 这在两个 shell 中都有效,脚本中有一个简单的 "read"。
echo -n "Enter value > "
read v
echo $v
如果您还有其他问题,能否改一下措辞以使您的问题更清楚? 你用什么(示例代码)。 你在编辑方面究竟做了什么(只有 BS 还是你的意思是行编辑命令 CTRL-A,等等) 结果/错误是什么,您想修复什么。 谢谢
用户 @cyrus 在评论中提到,但最好直接作为答案:
read -e -p 'Please enter the value> ' -i '1234' myvar
echo $myvar
导致可编辑的默认值 1234
Please enter the value> 1234
1234