Command line 读写命令行字符串的算法

Command line 读写命令行字符串的算法,command-line,terminal,command-line-arguments,Command Line,Terminal,Command Line Arguments,我正在尝试编写一个程序,可以读取命令字符串并对其进行验证(获取命令名称及其参数),更改这些参数,然后动态重写命令字符串 我正在寻找一种可以解析命令字符串的算法或正则表达式。我熟悉DOS6.2和批处理文件,但我对终端、unix、shell等Mac电脑知之甚少。我不确定这些参数是否是一个命令到另一个命令的不同语法 更多信息: 我要做的事情是验证命令行的格式是否正确,例如,文件路径周围有引号或转义空格(如果有)。我希望它是通用的,以便它可以与任何命令一起工作 我用的是Mac电脑,所以我可以在终端上测试

我正在尝试编写一个程序,可以读取命令字符串并对其进行验证(获取命令名称及其参数),更改这些参数,然后动态重写命令字符串

我正在寻找一种可以解析命令字符串的算法或正则表达式。我熟悉DOS6.2和批处理文件,但我对终端、unix、shell等Mac电脑知之甚少。我不确定这些参数是否是一个命令到另一个命令的不同语法

更多信息:
我要做的事情是验证命令行的格式是否正确,例如,文件路径周围有引号或转义空格(如果有)。我希望它是通用的,以便它可以与任何命令一起工作

我用的是Mac电脑,所以我可以在终端上测试

        #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);

                }
该程序处理多个选项

您希望更改哪个目录而不是“/usr”目录


您可以动态运行程序并更改命令和选项。

我不清楚您在这里要问什么。。。你能举个例子吗?您是否建议编写一个程序,当从命令行调用时,该程序进行输入验证,然后调用其他已安装的程序?如果是,,您打算用什么语言进行开发?我更新了这个问题。如果您使用命令行参数阅读类似于ls command和-l选项的字符串,并验证其命令是否正确,我想您会发现,在您能够以我们真正能够提供帮助的方式重新表述这个问题之前,您需要学习一些东西。需要记住的事情:每个程序都可以按照自己的意愿解析其命令行参数,但实际上并没有标准。多个程序可以在命令行上交互,方式由当前shell定义。需要考虑的事情:所有的
program/path/to-file“
program/path/to-file
,以及
program/path/to-file
都是合法的。另外:如果(1x$)~/^我明白你的意思。我不知道每个程序都可以按照自己的意愿解析它的命令行。那么,这是否意味着当我运行一个命令,如“program-e | blah blah 123”时,“program”会得到一个包含短语“program”后面所有内容的字符串?对不起。我只知道这个概念。你读过exec系统调用函数,你会得到更多关于它的信息。所以我不太熟悉这种语言。上面的程序是否接受像“ls”这样的命令并将其参数解析为数组或其他什么?在本例中,它将有一个数组,其中第一个and项是“-l”?如果添加更多参数,如“-l-define=Config::value,true”,则数组中会有两项,其中第一项为“-l”,第二项为“-define=Config::value,true”?此程序实际上根本没有进行任何解析。。。相反,它只是使用提供的第一个参数调用给定的程序,进一步限制程序位于
/usr
目录中。
         ./a.out ls -lhrt