2013-02-18 54 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,但它所做的工作做好。