2013-01-08 84 views
5

即使使用Google搜索,我也很難,因爲我不知道正確的關鍵字。一些命令行應用程序(如vi和更少)接管整個控制檯屏幕並向用戶呈現交互式界面。退出此類應用程序後,屏幕返回到應用程序啓動之前的狀態。我想編寫一個以這種方式運行的程序,但是我再也不知道這是什麼,所以我找不到任何有關如何完成的文檔。如何編寫全屏Linux控制檯應用程序/腳本?

所以,我的問題有三個方面:

  1. 我可以使用哪些關鍵字來找到這個文件?
  2. 如果您非常喜歡,鏈接到這些文檔將有所幫助。
  3. 最後,我可以用Ruby,甚至bash這樣的腳本語言來完成這項工作嗎?我對C沒有問題,但我工作的環境更適合解釋語言。
+0

你正在尋找該庫是 '詛咒'。我確定有對Perl的綁定,不知道其他腳本語言。 – antlersoft

回答

2

您描述的功能是alternate screen buffer。我認爲[N] Curses會默認啓用此功能。 Ruby,Python和其他腳本語言確實存在curses綁定。

+0

+1爲正確的關鍵字。 –

+0

爲了完整性:此功能通常很煩人,並且有多種方法可以阻止使用備用屏幕緩衝區的程序:http://www.shallowsky.com/linux/noaltscreen.html – larsks

2

你可以在bash甚至ncurses的訪問,通過使用tput的程序。整個ncurses庫(如之前的curses)通過向終端發送轉義序列來工作。 xterm程序模擬一個vt100終端(也是一個Tektronic終端),並且有各種字符組合可以移動光標,清除屏幕,繪製各種字符等等。這些通常以轉義字符開頭,因此名稱:escape序列。您有時也會在\ e中看到人們的PS1 shell變量中的這些轉義序列以提供轉義字符;通常用於給提示着色或設置窗口標題。

tput引用terminfo數據庫來確定轉義序列執行您要求的功能。

請參閱手冊頁,請鍵入:

man 5 terminfo 

更多細節

相關問題