• pranaless@beehaw.org
    link
    fedilink
    arrow-up
    31
    ·
    8 months ago
    use std::process::Command;
    
    fn main() {
        Command::new("sh")
            .arg("-c")
            .arg("echo Hello World!")
            .spawn()
            .unwrap();
    }
    

    Like this?

    • 30p87@feddit.de
      link
      fedilink
      arrow-up
      10
      ·
      8 months ago

      No, more like

      use std::process::Command; fn main() { Command::new("sh").arg("-c").arg("echo Hello World!").spawn().unwrap(); }
      

      .
      Just a little bit shorter, as it seems /s

        • 30p87@feddit.de
          link
          fedilink
          arrow-up
          6
          ·
          8 months ago

          I did too. Multiple times in fact, I had to look at the other Rust code!

        • pranaless@beehaw.org
          link
          fedilink
          arrow-up
          1
          ·
          8 months ago

          Yes and no. While coreutils does provide an echo binary, shells also have a built-in for optimisation purposes.

          At first I had the code calling the binary directly, but then changed it to spawning a shell (and so using the builtin). It’s very cursed either way.