一組庫,如 shell 腳本中的 ncurses
假設您
TUI
在 shell 中顯示以下內容:我需要一組可以在 shell 中使用的庫來完成它。可以肯定的是,
ncurses
沒有被使用,因為它使一個依賴。問題:如何
TUI
在 shell 中建構小元件/視窗或其他?
好的,我覺得您可能會問兩個問題之一,所以我會嘗試回答兩個問題。
- 可以使用哪些庫來創建類似於 shell 腳本介面的 ncurses?
實際上,無論如何我都不會直接將 ncurses 推薦給 shell 腳本,因為它實際上並不打算被 shell 語言使用。相反,我會推薦
dialog
. Dialog 是一個 shim 庫,它位於 ncurses 和 shell 之間,使其使用更加簡單。這將在功能上為您提供兩個依賴項(一個 on
ncurses
和一個 ondialog
),您似乎出於某種原因反對。 2. 鑑於我不想要任何外部依賴項,如何創建自己的類似 ncurses 的 TUI 庫?這超出*了**nix.SE 的範圍。創建一個新的 TUI 庫並非易事(特別是如果您嘗試在純 shell 中創建它)。已經有很多項目試圖創建新的庫來替代 ncurses 的一些使用(例如,
termbox
是比較成功的庫之一)。如果您打算創建自己的庫,則可能需要查看 ncurses 和 termbox 等低級項目以及 dialog 等高級項目。查看他們的工作可能會讓您了解如何開始。
最後的建議:
對外部項目的依賴雖然需要一些額外的工作(用於集成和支持),但並不是一件壞事。這意味著您可以只專注於您想要製作的工具,而將基礎工作留給那些做較低基礎設施的人。Linux,特別是在 *nix 平台之外,有著悠久的依賴互動歷史。
如果您的目標是了解較低級別的東西是如何完成的,那就去吧。相反,如果您正在嘗試製作一種可以從這種低級工作中受益的工具,則只需依賴外部工具即可。你會更快樂,每個查看你的程式碼的人也會更快樂。