read -e删除整行



我使用Bash为我的脚本与read命令输入姓氏和名字。姓和名的描述在输出中的同一行。现在在read中有一个-e参数可以用backspace键执行删除,但是,在执行删除时,这一行的所有字符都将被删除。有什么办法可以防止这种情况发生吗?

#!/bin/bash
clear
tput cup 0 25
echo -n "First Name: JOHN"
tput cup 0 0
echo -n "Last Name: " $lastname
read -e -n10 lastname

是否可以在声明的字符数内开始编辑行?

如果您添加了选项-i

,则read -e会执行此操作,前提是当前变量值的长度在声明的字符数内;e . g。

read -ei"$lastname" -n10 lastname

假设-n10和退格将从第10个字符开始向左移动,直到第1个字符,而不是整个单行?

在我目前看到的所有情况下,光标已经没有移动到输入开始时的位置。但是,由于行为可能取决于shell版本和终端功能,您可能更喜欢像

这样的内容。
newname=`dialog --max-input 10 
--inputbox "First Name: JOHNnLast Name: " 0 0 "$lastname" 
2>&1 >/dev/tty` && lastname="$newname"; clear

相关内容

  • 没有找到相关文章

最新更新