我使用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