Function shell_words::join [] [src]

pub fn join<I, S>(words: I) -> String where
    I: IntoIterator<Item = S>,
    S: AsRef<str>, 

Joins arguments into a single command line suitable for execution in Unix shell.

Each argument is quoted using quote to preserve its literal meaning when parsed by Unix shell.

Note: This function is essentially an inverse of split.

Examples

Logging executed commands in format that can be easily copied and pasted into an actual shell:

fn execute(args: &[&str]) {
    use std::process::Command;
    println!("Executing: {}", shell_words::join(args));
    Command::new(&args[0])
        .args(&args[1..])
        .spawn()
        .expect("failed to start subprocess")
        .wait()
        .expect("failed to wait for subprocess");
}

execute(&["python", "-c", "print('Hello world!')"]);