2011-02-17 31 views
6

編寫一個bash腳本,我想獲取用戶輸入。真棒,在Bash中預填充提示

read -p "What directory should we save in? " -e FOLDER 

除了我想做什麼,理想,是讓用戶看到這樣的:

What directory should we save in? /home/user/default/ 

用光標在該行的結束,以及刪除反向或追加等功能。基本上,預填充用戶的輸入,但給他們編輯它的能力。

readline顯然有能力,但它似乎沒有公開在read命令中。任何替代品?我寧願不必使用perl或類似的東西。

我正在處理的約束是我正在編寫一個單獨的shell腳本,該腳本很適合廣泛傳播,所以應該儘可能少地依賴現有的基礎架構。 rlwrapread -i都可以使用如果它們的依賴關係(rlwrap和bash版本>>分別是我擁有的)都可用。兩個很好的答案,選擇適合你的任何一個。

+0

bash的哪個版本?運行`bash --version` – 2011-02-17 14:06:39

+0

@富Bah - 我希望它可以在儘可能多的bash版本中工作。理想可能甚至最終不會依賴bash,而是相處sh okay。 – agnoster 2011-02-17 14:08:18

回答

0

你可以用在rlwrap命令,它提供了即時的readline功能:http://utopia.knoware.nl/~hlub/rlwrap/#rlwrap

(rlwrap -P你想要做什麼)

至於純bash的解決方案而言爲3.2線(我認爲你正在使用),我不認爲它可能

11
$ read -p "What directory should we save in? " -i "/home/user/default/" -e FOLDER 
What directory should we save in? /home/user/default/ 

這應該工作,對嗎?