【发布时间】:2013-02-08 20:10:09
【问题描述】:
我正在尝试编写一个程序,该程序可以读取命令字符串并对其进行验证(获取命令名称及其参数),更改这些参数,然后动态重写命令字符串。
我正在寻找可以解析命令字符串的算法或正则表达式。我熟悉 DOS 6.2 和批处理文件,但我对 Mac 知之甚少,比如我正在使用的终端、unix、shell 等。我不确定参数是否是从一个命令到下一个命令的不同语法。
更多信息:
我要做的事情是验证命令行的格式是否正确,例如,文件的路径在它们周围有引号或转义空格(如果存在)。我希望它是通用的,以便它可以与任何命令一起使用。
我使用的是 Mac,所以我可以在终端中进行测试。
【问题讨论】:
-
我很不清楚你在这里问什么......你能举个例子吗?您是否建议您编写一个程序,当从命令行调用时,它会进行输入验证,然后调用其他已安装的程序?如果是这样,您打算用什么语言进行开发?
-
我更新了问题。
-
如果您使用命令行参数读取 ls 命令和 -l 选项之类的字符串并验证其命令与否?
-
我怀疑你会发现你需要学习一些东西才能以我们真正能够提供帮助的方式重新表述这个问题。要记住的事情:每个程序都可以根据需要解析其命令行参数,并且实际上没有标准。并且多个程序可以在命令行上以当前 shell 定义的方式进行交互。需要考虑的事情:所有
program "/path/to file"、program /path/to\ file和program /path/to file都是合法的。另外:你如何验证echo -e "1\n2\n3\n4\n5" | perl -lne 'print if (1x$_) !~ /^1?$|^(11+?)\1+$/'? -
@addaon - 我明白你的意思。我不知道每个程序都可以根据需要解析它的命令行。那么这是否意味着当我运行“program -e | blah blah blah 123”之类的命令时,“program”会得到一个包含短语“program”之后的所有内容的字符串?
标签: command-line terminal command-line-arguments