Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/search/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Rust 如何运行可以接受未指定数量的env参数的命令? fn干线{ 让args:Vec=env::args.collect; 命令::newsudo 阿加普先生 .arg&args[0]。至小写 .arg&args[用户输入的其他参数]; }_Rust_Command Line Interface - Fatal编程技术网

Rust 如何运行可以接受未指定数量的env参数的命令? fn干线{ 让args:Vec=env::args.collect; 命令::newsudo 阿加普先生 .arg&args[0]。至小写 .arg&args[用户输入的其他参数]; }

Rust 如何运行可以接受未指定数量的env参数的命令? fn干线{ 让args:Vec=env::args.collect; 命令::newsudo 阿加普先生 .arg&args[0]。至小写 .arg&args[用户输入的其他参数]; },rust,command-line-interface,Rust,Command Line Interface,正如您在代码中看到的,我希望用户在第一个参数之后输入每个参数来运行,但我不知道如何实现这一点。您可以从参数列表中删除第一个元素,然后将其作为完整的向量引用提供给参数,如下所示: 让mut args:Vec=env::args.collect; 如果args.u为空{ 让first_arg=args.remove0; 命令::newsudo 阿加普先生 .arg&第一个参数到小写 .args&args; } 您可以从参数列表中删除第一个元素,然后将其作为完整的向量引用提供给参数,如下所示: 让mu

正如您在代码中看到的,我希望用户在第一个参数之后输入每个参数来运行,但我不知道如何实现这一点。

您可以从参数列表中删除第一个元素,然后将其作为完整的向量引用提供给参数,如下所示:

让mut args:Vec=env::args.collect; 如果args.u为空{ 让first_arg=args.remove0; 命令::newsudo 阿加普先生 .arg&第一个参数到小写 .args&args; }
您可以从参数列表中删除第一个元素,然后将其作为完整的向量引用提供给参数,如下所示:

让mut args:Vec=env::args.collect; 如果args.u为空{ 让first_arg=args.remove0; 命令::newsudo 阿加普先生 .arg&第一个参数到小写 .args&args; } 您可以直接使用原始迭代器,而不是将env::args迭代器收集到一个向量中,然后修改该向量:

let mut args = env::args();
if let Some(first_arg) = args.next() {
    Command::new("sudo")
        .arg("apt")
        .arg(first_arg.to_lowercase())
        .args(args);
}
您可以直接使用原始迭代器,而不是将env::args迭代器收集到一个向量中,然后修改该向量:

let mut args = env::args();
if let Some(first_arg) = args.next() {
    Command::new("sudo")
        .arg("apt")
        .arg(first_arg.to_lowercase())
        .args(args);
}

这需要硬编码args-vec中的所有值,在我的情况下,可以输入的环境变量数量是无限的。@SmushyTaco,我刚刚创建了arg-vec来显示在游乐场中的使用情况。在实际情况中,您可以从环境中获取args向量,这与我在问题下方发布的问题相同:这是否可以在没有可变向量的情况下使用切片来实现?参数[0]和参数[1..]?我对锈病一无所知,但根据我的文档,这似乎是可能的read@BenjaminPodszun一个向量同一个切片。但是您希望如何初始化切片?这就是@Webstrix使用Vec的原因。@BenjaminPodszun需要硬编码args Vec中的所有值,在我的情况下,可以输入无限多的环境变量。@SmushyTaco,我刚刚创建了arg Vec来显示在游乐场中的使用情况。在实际情况中,您可以从环境中获取args向量,这与我在问题下方发布的问题相同:这是否可以在没有可变向量的情况下使用切片来实现?参数[0]和参数[1..]?我对锈病一无所知,但根据我的文档,这似乎是可能的read@BenjaminPodszun一个向量同一个切片。但是您希望如何初始化切片?这就是为什么@Webstrix使用了Vec来代替它。@BenjaminPodszun-rust-noob:切片不行吗?在这里,似乎可以按照args的要求实现Iterator,那么.args和args[1..]是否可以工作?不需要可变的Vecthen@BenjaminPodszun不,那会吐出一堆errors@SmushyTaco说他会吐出一大堆错误是没有帮助的。本杰明的上述建议是正确的。在这里使用切片就可以了。在构造切片的过程中,可能存在一些语法错误。或者是关于如何实例化命令对象的其他问题。如果您告诉我们错误是什么,我们可以建议正确的语法。但是既然你还没有告诉我们,我们就得等着看你是否会再次回复更多的信息。@JackO'Connor,我的错,我把它读作arg。&args[1..]不是args[&args[1..]我已经找到了一个解决方案,所以一切都很好。noob:切片不会工作吗?似乎切片按照args的要求实现到迭代器中,我也会这样做。args&args[1..]工作?不需要可变的Vecthen@BenjaminPodszun不,那会吐出一堆errors@SmushyTaco说“吐出一堆错误”是没有帮助的。Benjamin上面的建议是正确的。在这里使用切片将起作用。您可能在构建切片时存在语法错误。或者您在如何即时处理方面存在其他问题正在处理命令对象。如果您告诉我们错误是什么,我们可以建议正确的语法。但是由于您没有告诉我们,我们必须等待,看看您是否再次回复更多信息。@JackO'Connor我的错,我将其理解为arg。&args[1..]不是args[&args[1…我已经找到了解决方案,所以一切都很好