相关疑难解决方法(0)

我如何分割像shell这样的字符串来填充ARGV?

我想要一个Ruby方法或一个正则表达式,让我将一串命令行参数分成一个类似ARGV的数组.我问的问题类似于这个问题,但在Ruby中.

我正在为使用Trollop处理命令行输入的Ruby程序编写单元测试(尽管这个问题对于任何其他选项解析器都是相同的).

我想测试的方法如下所示:

def parse_args(args)
  Trollop::options(args) do
    # ... parse options based on flags
  end
end
Run Code Online (Sandbox Code Playgroud)

在我的节目中,我打电话parse_args(ARGV).在我的测试中,我认为我可以在空格中传递一个字符串,但这不是ARGV的行为.比较以下内容:

./argv_example.rb -f -m "Hello world" --extra-args "-vvv extra verbose"
=> ["-f", "-m", "Hello world", "--extra-args", "-vvv extra verbose"]

'-f -m "Hello world" --extra-args "-vvv extra verbose"'.split
=> ["-f", "-m", "\"Hello", "world\"", "--extra-args", "\"-vvv", "extra", "verbose\""]
Run Code Online (Sandbox Code Playgroud)

ruby string command-line

8
推荐指数
1
解决办法
1169
查看次数

嵌入式系统的命令行实现是否有很好的参考实现?

我知道这并不是什么新鲜事,已经完成了好几次。但是我正在寻找一些参考实现(甚至只是参考设计)作为“最佳实践指南”。我们有一个实时的嵌入式环境,其想法是能够使用“调试外壳”来调用某些命令。示例:“ SomeDevice print reg xyz”将请求SomeDevice子系统打印名为xyz的寄存器的值。

embedded shell command-line

5
推荐指数
1
解决办法
1467
查看次数

根据空格或"双引号字符串"将字符串解析为数组

我试图取一个用户输入字符串并解析为一个名为char*entire_line [100]的数组; 其中每个单词放在数组的不同索引处,但如果字符串的一部分由引号封装,则应将其放在单个索引中.所以,如果我有

char buffer[1024]={0,};
fgets(buffer, 1024, stdin);
Run Code Online (Sandbox Code Playgroud)

示例输入:"word filename.txt"这是一个字符串,shoudl占用输出数组中的一个索引";

tokenizer=strtok(buffer," ");//break up by spaces
        do{
            if(strchr(tokenizer,'"')){//check is a word starts with a "
            is_string=YES;
            entire_line[i]=tokenizer;// if so, put that word into current index
            tokenizer=strtok(NULL,"\""); //should get rest of string until end "
            strcat(entire_line[i],tokenizer); //append the two together, ill take care of the missing space once i figure out this issue

              }  
        entire_line[i]=tokenizer;
        i++;
        }while((tokenizer=strtok(NULL," \n"))!=NULL);
Run Code Online (Sandbox Code Playgroud)

这显然是行不通的,只有当双引号封装的字符串是输入字符串的结束,但我可以有输入靠拢:单词"这是文本,这将是用户输入" FILENAME.TXT一直试图弄清楚这一点有一段时间,总是卡在某个地方.谢谢

c parsing split strtok

3
推荐指数
2
解决办法
9975
查看次数

标签 统计

command-line ×2

c ×1

embedded ×1

parsing ×1

ruby ×1

shell ×1

split ×1

string ×1

strtok ×1