macro_rules! run_cmds {
($x:ident $($other:tt)*) => { ... };
(&$s:expr; $x:tt $($other:tt)*) => { ... };
(&$s:expr; $x:tt; $($other:tt)*) => { ... };
(&$s:expr;) => { ... };
($($arg:tt)*) => { ... };
}
if any command fails, just return Err(...)
run_cmds!{
date
ls -l /file
}