是否可以通过用户可编辑的 bash 脚本将文本输出到 shell 窗口?我基本上想预先填写某些信息,并让用户能够在错误时进行编辑。
例如,如果我要写一个脚本:
echo -n "Enter your name: Anthony"
while read user_input
do
# do stuff with $user_input
done
我如何允许用户内联编辑单词 Anthony
only(又名,不允许退格 A
Anthony
),以及如何在按下 RETURN 键后将值存储到变量中?
编辑
我正在寻找类似于 read
( see answer posted here ) 的 -i
选项的东西,但这仅适用于 bash 4+。 bash 3 有替代品吗?
最佳答案
我最近需要类似的设置,所以我所做的是
$ cat a.sh
function input {
python -c '
import sys,readline
readline.set_startup_hook(lambda: readline.insert_text(sys.argv[2]))
sys.stderr.write(raw_input(sys.argv[1]))
' "$@" 3>&1 1>&2 2>&3
}
A=$( input 'question: ' default )
echo "A='$A'"
$ ./a.sh
question: default
A='default'
好吧,它实际上不是 bash,但它完成了工作。
关于linux - 用户可编辑的回显文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14943199/