Execute shell scripts asynchronously on multiple platforms. The goal of the library is to provide a simple interface to execute a user provided script on any shell. We try to avoid as much as possible writing temporary files.
use std::time::Duration; use shell_exec::{Execution, Shell}; let execution = Execution::builder() .shell(Shell::Bash) .cmd( r#" INPUT=`cat -`; echo "hello $INPUT" "# .to_string(), ) .timeout(Duration::from_millis(10000)) .build(); let data = execution.execute(b"world").await.unwrap(); assert_eq!(b"hello world"[..], data);