• 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.