2013-02-18 51 views
1

是否可以通过用户可编辑的bash脚本将文本输出到shell窗口?我基本上想要预先填充某些信息,并让用户有能力编辑它,如果它是错误的。用户可编辑的回显文本

举例来说,如果我是在脚本中写:

echo -n "Enter your name: Anthony" 

while read user_input 
do 
    # do stuff with $user_input 
done 

我怎样才能让用户联编辑字Anthony(又名,不允许退格过去AAnthony),以及如何在按下RETURN键后将值存储到变量中?

编辑

我在寻找类似的readsee answer posted here)的-i选项的东西,但这只是巴蜀4+可用。有没有其他的bash 3?

+0

重复http://stackoverflow.com/questions/226703/how-do-i-prompt-for-input-in-a-linux-shell-script? – emallove 2013-02-18 18:48:57

+0

@emallove不完全 - 我知道如何阅读用户输入。我试图发现的本质是如何回显用户可以内联编辑的文本。 – Anthony 2013-02-18 18:53:05

+0

其实,我想我明白你指的是什么。 xaccrocheur的答案似乎是我正在寻找的。类似的东西可以在bash 3.2.x上完成吗? – Anthony 2013-02-18 19:01:43

回答

0

我需要类似的设置最近所以我所做的就是

$ 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])) 
' "[email protected]" 3>&1 1>&2 2>&3 
} 

A=$(input 'question: ' default) 
echo "A='$A'" 

$ ./a.sh 
question: default 
A='default' 

嗯,这不是真正的bash,但它所做的工作做好。