rsbash makes running arbitrarily complex bash commands wonderfully easy!
With rsbash you can easily use all your favourite bash operators in your commands, redirects >
, pipes |
, subshells $(...)
, boolean logic && ||
etc!
```rust use rsbash::rash;
pub fn hello() -> Result<(), RashError> { let (retval, stdout) = rash!("echo -n 'Hello world!'")?; asserteq!(retval, 0); asserteq!(stdout, "Hello world!");
let (ret_val, stdout) =
rash!("echo -n 'Hello ' | cat - && printf '%s' $(echo -n 'world!')")?;
assert_eq!(ret_val, 0);
assert_eq!(stdout, "Hello world!");
} ```
```rust use rsbash::rash;
const SCRIPT: &'static str = r#" s="*" for i in {1..3}; do echo "$s" s="$s *" done; "#;
pub fn script() -> Result<(), RashError> { // ... it prints a lovely triangle.
let (retval, stdout) = rash!(SCRIPT)?; // *
asserteq!(retval, 0); // * *
asserteq!(stdout, "\n \n * *\n"); // * * *
}
```
MIT License - Copyright (c) 2023 Luke Elliot