C語言 程式互動,參照shell命令

2021-09-29 22:47:25 字數 1185 閱讀 6036

文章參考

摘要:

筆者沒有接觸過linux,也沒有用過shell,今天偶然在乙個模組程式上看見有這種寫法感覺很新穎,也很方便,分享一下

一. 什麼是shell

shell是乙個命令列直譯器,它為使用者提供了乙個面向linux核心傳送請求以便執行程式的介面系統級程式,使用者可以用shell來啟動、掛起、停止甚至是編寫一些程式。

shell還是乙個功能相當強大的程式語言,易編寫,易除錯,靈活性較強。shell是解釋執行的指令碼語言,在shell中可以直接呼叫linux系統命令。

shell具體可描述為:外層應用程式是一些命令,是非機器語言,比如ls , useradd等;而核心則識別的是機器語言0和1,讓shell直譯器當乙個「中介」,由非機器語言通過shell直譯器向機器語言的轉化,轉化後核心將命令傳遞給硬體執行。更直白的說,shell就是我們操控的linux終端介面,輸入命令得到想要的功能。

二、自建互動

建立名了結構體:

typedef const struct _command command_t;

結構體初始化:

command_t cmd_clear = ; 

command_t cmd_help = ; 

command_t cmd_vid = ; 

command_t cmd_pid = ;

主程式輪詢:

static int command_interpreter(void)

cp = cp->next;

}buffer[strlen(buffer) - 1] = '\0';    

uart.printf("\r\n\ 1 command! \r\n");

next:   uart.printf("\r\n\ 2 command \r\n ");

}通過butty 軟體可以實現對模組埠的訪問

shell互動程式自動執行

最近遇到乙個問題 需要對單板emmc進行分割槽,執行fdisk,手動分割槽。當批量生產時,會使效率極低,且容易出錯。經過蒐集資料,發現expect可以實現互動程式的自動執行。1.了解expect 首先在ubuntu上apt get install expect,看看是個怎麼回事。執行expect,不...

shell中Expect的程式互動

一般來說,我們在編寫shell指令碼時都是自動執行的,如果涉及到與使用者的交付,如遠端ssh終端輸入使用者名稱 密碼。有時我們需要編寫的指令碼自動執行,而不需要人工干預,選擇expect實現是乙個很好的方式。來乙個簡單的例子 hello.sh bin sh echo n what s your na...

linux C程式中呼叫shell終端的命令

使用popen 在學習unix程式設計的過程中,發現系統還提供了乙個popen函式,可以非常簡單的處理呼叫shell,其函式原型如下 file popen const char command,const char type 該函式的作用是建立乙個管道,fork乙個程序,然後執行shell,而she...