Mac 終端小工具開發( 簡單入門)

2021-09-04 09:10:45 字數 1836 閱讀 1984

一、準備

建立乙個 mac 終端專案,命名為 hgtools,看起來是這樣的:

直接 command+b 之後從這裡 show in finder :

開啟終端,執行如下:

乙個 mac 終端專案的建立到執行的過程介紹完畢,接下來是如何在**中獲取外部輸入的引數。

二、引數

開發乙個終端的程式,我們比較關注是的輸入與輸出。

引數的接收,主要**於 main 函式的引數:

argc:代表引數的個數。

argv:引數陣列。

簡單的寫幾行**檢視一下參具體的值:

printf("\n");

for (int i=0; i const char* arg = argv[i];

printf(" argv[%d] %s\n", i, arg);

}printf("\n");

實驗一下,結果如下:

結論:第乙個引數就是當前可執行檔案的名。

其它引數以空格作為分隔符。

還有一種引數的傳入,是帶有關鍵字 grep 的:

發現加上 grep 之後,引數列印不見了。不知道是否有小夥伴知道這是為什麼?接下來換一種方式:

這裡有乙個問題要說清楚:在我們的工具開發中,./hgtools -l | grep love 這樣帶有 grep 的部分不是由我們負責的, grep 本來就是乙個系統的指令。在 ./hgtools -l | grep love 指令中,其實是有兩個部分組成:./hgtools -l 與 grep love 這兩個指令是連貫的,後面的指令會過濾掉第乙個指令中的結果。所以才會出現 grep 後面是 love 的時候沒有任何列印,而是 hgtools 的時候,把帶有 hgtools 的那一行顯示出來了。

其實在平常使用終端的過程中經常使用這樣的指令:

history | grep tools

意思是列印我們在終端輸入過的帶有 tools 字樣的指令。

三、小功能實戰

具體的功能為:搜尋桌面的所有檔案。

這個功能僅僅是乙個例子而已,沒有實際的意義。

3.1 簡單實現瀏覽

**在這裡:hgtools 。

五、許可權

如果是做 iphone 的終端工具開發,會出現乙個可執行程式的許可權不夠用的情況,這個時候需要考慮新增許可權。一般的做法是獲取乙個程式比較大的許可權檔案,然後再把這個大許可權的檔案給當前的程式。

獲取許可權的命令:

ldid -e springboard > springboard.entitlements

重新賦值許可權的方法:

ldid -sspringboard.entitlements hgtools

這樣 hgtools 就能擁有與 springboard 一樣高的許可權。

Mac 終端小工具開發( 簡單入門)

一 準備 建立乙個 mac 終端專案,命名為 hgtools,看起來是這樣的 直接 command b 之後從這裡 show in finder 開啟終端,執行如下 乙個 mac 終端專案的建立到執行的過程介紹完畢,接下來是如何在 中獲取外部輸入的引數。二 引數 開發乙個終端的程式,我們比較關注是的...

開發小工具

獲取上級方法的資訊 thread.currentthread getstacktrace 1 是你當前方法執行堆疊 thread.currentthread getstacktrace 2 就是上一級的方法堆疊 以此類推 param content return public static stri...

EAS開發小工具

系統選單 啟用系統選單快捷鍵 shift ctrl alt k 系統選單匯出 geninsert select from t bas sysmenuitem where 1 1 客戶化選單 客戶化選單匯出 geninsert select from t pm mainmenuitem where 1...