2 回答
TA貢獻1776條經(jīng)驗 獲得超12個贊
大多數(shù)想要實現(xiàn)此行為的軟件包都將使用 GNU Readline 庫。甚至 Bash shell 也在使用這個 readline 庫的(修改后的副本)??紤]以下兩個選項之一:
使用 go-readline 包 - Go 編程語言的 GNU Readline 庫的包裝器。https://github.com/fiorix/go-readline
使用 GNU-Readline 類庫的純 GO 替換實現(xiàn)。https://github.com/chzyer/readline
第一條路徑將為您提供防戰(zhàn)的 ReadLine 庫,但需要構(gòu)建“C”代碼。您可以根據(jù)自己的經(jīng)驗/限制來決定走哪條路。
TA貢獻1856條經(jīng)驗 獲得超11個贊
shell 中沒有“輸入字段”;根本沒有字段。只有一個輸入流、一個輸出流和一個錯誤流。你也不想寫給你自己stdin的,當然不是為了解決這個問題。shell 通常這樣做的方式(無論語言如何)是:
用戶按下向上箭頭,應(yīng)用程序進入歷史模式
Shell 刪除提示符處的任何內(nèi)容并將其替換為歷史記錄中的上一個命令,跟蹤當前歷史記錄索引
如果用戶在歷史模式下按回車,它會獲取當前歷史索引,并從那里讀取命令而不是從標準輸入
- 2 回答
- 0 關(guān)注
- 151 瀏覽
添加回答
舉報
