2013-02-23 82 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