Shell-Script

一組庫,如 shell 腳本中的 ncurses

  • August 19, 2019

假設您TUI在 shell 中顯示以下內容:

在此處輸入圖像描述

我需要一組可以在 shell 中使用的庫來完成它。可以肯定的是,ncurses沒有被使用,因為它使一個依賴。

問題:如何TUI在 shell 中建構小元件/視窗或其他?

好的,我覺得您可能會問兩個問題之一,所以我會嘗試回答兩個問題。

  1. 可以使用哪些庫來創建類似於 shell 腳本介面的 ncurses?

實際上,無論如何我都不會直接將 ncurses 推薦給 shell 腳本,因為它實際上並不打算被 shell 語言使用。相反,我會推薦dialog. Dialog 是一個 shim 庫,它位於 ncurses 和 shell 之間,使其使用更加簡單。

這將在功能上為您提供兩個依賴項(一個 onncurses和一個 on dialog),您似乎出於某種原因反對。 2. 鑑於我不想要任何外部依賴項,如何創建自己的類似 ncurses 的 TUI 庫?

這超出*了**nix.SE 的範圍。創建一個新的 TUI 庫並非易事(特別是如果您嘗試在純 shell 中創建它)。已經有很多項目試圖創建新的庫來替代 ncurses 的一些使用(例如,termbox是比較成功的庫之一)。

如果您打算創建自己的庫,則可能需要查看 ncurses 和 termbox 等低級項目以及 dialog 等高級項目。查看他們的工作可能會讓您了解如何開始。


最後的建議:

對外部項目的依賴雖然需要一些額外的工作(用於集成和支持),但並不是一件壞事。這意味著您可以只專注於您想要製作的工具,而將基礎工作留給那些做較低基礎設施的人。Linux,特別是在 *nix 平台之外,有著悠久的依賴互動歷史。

如果您的目標是了解較低級別的東西是如何完成的,那就去吧。相反,如果您正在嘗試製作一種可以從這種低級工作中受益的工具,則只需依賴外部工具即可。你會更快樂,每個查看你的程式碼的人也會更快樂。

引用自:https://unix.stackexchange.com/questions/155417