准备shell的输入

时间:2011-06-11 00:51:41

标签: c parsing

在我看来,这是一个非常无知的问题,但这真的让我烦恼。我在C中编写一个简单的shell,我希望以与其他shell相同的方式实现用户输入,或者至少bash如何实现(从未使用过其他shell)。如果输入带有随机空格的命令,则它仍然可以运行命令:

离。

           ls                              -1

显然strtok()在分离命令和args时不会对此工作......

bash如何做到这一点?我应该搜索数千行源代码吗?

由于

2 个答案:

答案 0 :(得分:2)

在解析命令时,可以跳过空格:

while(*p==' '||*p=='\t') ++p;

答案 1 :(得分:0)

空格不是问题。您可以删除所有不是necesery的空格。 但我不确定shell是这样做的。我认为shell可以搜索输入的字符串中的所有选项。示例

ls -a -l    and     ls -l -a

是一样的。也许更好的是,如果你将搜索所有可能的选项,或逐步解释所有字符。例如,首先搜索所有“ - ”,然后在“ - ”

之后解释选项