簡體   English   中英

如何編寫全屏 Linux 控制台應用程序/腳本?

[英]How to write full-screen Linux console app/script?

我什至很難在谷歌上搜索這個,因為我不知道正確的關鍵字。 一些命令行應用程序(例如 vi 和 less)接管整個控制台屏幕並向用戶呈現交互式界面。 退出此類應用程序后,屏幕將返回到應用程序啟動之前的狀態。 我想編寫一個以這種方式運行的程序,但同樣,我什至不知道它叫什么,所以我找不到任何關於它是如何完成的文檔。

所以,我的問題是三重的:

  1. 我可以使用哪些關鍵字來查找相關文檔?
  2. 如果您願意,指向此類文檔的鏈接會有所幫助。
  3. 最后,我可以用像 Ruby 甚至 bash 這樣的腳本語言來完成這個嗎? 我對 C 沒有任何問題,但我工作的環境更適合解釋型語言。

正如一些評論中所說,您正在尋找 ncurses。 Linux 文檔項目有一個非常好的關於 C 的 ncurses 的 HOWTO,我用我自己開始它

https://tldp.org/HOWTO/NCURSES-Programming-HOWTO/

您所描述的功能是備用屏幕緩沖區 我認為 [N]Curses 將默認啟用此功能。 Ruby、Python 和其他腳本語言肯定有curses 綁定。

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

tput 指的是 terminfo 數據庫,以找出執行您要求它執行的功能的轉義序列。

參見手冊頁,輸入:

man 5 terminfo

更多細節

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM