2012-11-05 161 views
3

我嘗試使用讀取命令來捕獲用戶輸入的內容。bash讀取命令

read -p "Please enter your name -> " -n 20 name 

但我發現我們不能糾正我們輸入的內容。我怎樣才能讓「BackSpace」刪除而不是添加?

回答

4

最簡單的方法是使用-e標誌來讀取,這將使它使用readline。

read -e -p "Please enter your name -> " -n 20 name 

您還可以更改您的終端設置(stty),以便退格鍵而不是刪除鍵被刪除。

0

可以通過管道通過col -b用戶(或任何其他文本)輸入的文字,比如:

name=`echo $name|col -b` 

這比使用read命令的選項-e更加便攜,因爲-e不支持在所有Unix系統上,例如AIX(我認爲它是一個GNU/Linux擴展)。