2013-02-23 106 views
-1

我想寫一個程序,它可以讀取命令字符串並驗證它(獲取命令的名稱及其參數),更改這些參數,然後動態地重寫命令字符串。讀取和寫入命令行字符串的算法

我正在尋找可以解析命令字符串的算法或regEx。我熟悉DOS 6.2和批處理文件,但我對終端,unix,shell等Mac知之甚少,這正是我正在使用的。我不確定這些參數是否是從一個命令到另一個命令的不同語法。

更多信息:
我必須做的事情是驗證命令行格式是否正確,例如,文件路徑在其周圍有引號,或者如果它們在那裏則轉義空格。我希望它是通用的,以便它可以使用任何命令。

我正在使用Mac,所以我可以在終端中測試。

+0

我很不清楚你在這裏問什麼......你能提供一個例子嗎?您是否建議您要編寫一個程序,該程序在從命令行調用時進行輸入驗證,然後調用其他已安裝的程序?如果是這樣,你打算用什麼語言來做你的發展? – addaon 2013-02-23 05:00:04

+0

我更新了問題。 – 2013-02-23 05:20:40

+0

如果您使用命令行參數讀取字符串如ls命令和-l選項並驗證其命令是否正確? – loganaayahee 2013-02-23 05:31:56

回答

-1
 #include<stdio.h> 

      main(int argc,char *argv[]) 

       { 
      if(execlp(argv[1], argv[1], argv[2], "/usr/", (char *) 0)==-1) 

       printf("This is not valid command\n"); 

       exit(0); 

       } 

運行程序:

  ./a.out ls -lhrt 

這個程序處理一個以上的選項。

你想改變它,而不是放在「/ usr」目錄

你動態地運行程序,並更改命令和選項的目錄。

+0

對不起。我只知道這個概念。你讀過exec系統調用函數,你會得到更多關於它的信息。 – loganaayahee 2013-02-23 06:03:46

+0

謝謝,這一切都有幫助。 – 2013-02-23 06:04:33

+0

所以我不太熟悉那種語言。上面的程序是否採用了「ls」這樣的命令並將它的參數解析爲數組或其他東西?在這種情況下,它會有一個數組,第一個和項目是「-l」?如果你添加了更多的參數,比如「-l -define = Config :: value,true」,它會在數組中有兩個項,第一個是「-l」,第二個是「-define = Config ::值,真正的「? – 2013-02-23 06:10:42