Crate shells [−] [src]
Wrapper around std::process::Command which make the use of Rust for shell scripting more appealing.
Simple example
#[macro_use] extern crate shells; fn main() { let (code, stdout, stderr) = sh!("echo '{} + {}' | cat", 1, 3); assert_eq!(code, 0); assert_eq!(&stdout[..], "1 + 3\n"); assert_eq!(&stderr[..], ""); // Using the new `wrap_*` macros. assert_eq!(wrap_sh!("echo '{} + {}' | cat", 1, 3).unwrap(), "1 + 3\n"); }
A mnemotechnic to remember the ordering of the elements in the resulting tuple is the positions of stdout and stderr, they correspond to the standard streams numbers: 1 and 2 respectively.
The implementation for all the different shells is the same: the arguments of the macro is
passed directly to format!
and the resulting string is passed to the shell using its '-c'
command line option. Thus you can use sh!
and friends the same way you would use format!
or
println!
.
Macros
ash! |
Macro to execute the given command using the Almquist Shell. |
bash! |
Macro to execute the given command using the Bourne Again Shell. |
csh! |
Macro to execute the given command using the C Shell. |
dash! |
Macro to execute the given command using the Debian Almquist Shell. |
fish! |
Macro to execute the given command using the Fish Shell. |
ksh! |
Macro to execute the given command using the Korn Shell. |
mksh! |
Macro to execute the given command using the MirBSD Korn Shell. |
sh! |
Macro to execute the given command using the Posix Shell. |
tcsh! |
Macro to execute the given command using the TENEX C Shell. |
wrap_ash! |
Macro to execute the given command using the Almquist Shell and wraping the resulting tuple into a Result. |
wrap_bash! |
Macro to execute the given command using the Bourne Again Shell and wraping the resulting tuple into a Result. |
wrap_csh! |
Macro to execute the given command using the C Shell and wraping the resulting tuple into a Result. |
wrap_dash! |
Macro to execute the given command using the Debian Almquist Shell and wraping the resulting tuple into a Result. |
wrap_fish! |
Macro to execute the given command using the Fish Shell and wraping the resulting tuple into a Result. |
wrap_ksh! |
Macro to execute the given command using the Korn Shell and wraping the resulting tuple into a Result. |
wrap_mksh! |
Macro to execute the given command using the MirBSD Korn Shell and wraping the resulting tuple into a Result. |
wrap_sh! |
Macro to execute the given command using the Posix Shell and wraping the resulting tuple into a Result. |
wrap_tcsh! |
Macro to execute the given command using the TENEX C Shell and wraping the resulting tuple into a Result. |
wrap_zsh! |
Macro to execute the given command using the Z Shell and wraping the resulting tuple into a Result. |
zsh! |
Macro to execute the given command using the Z Shell. |
Structs
Error |
Struct holding the resulting environment after executing a failed command with the |
Type Definitions
Result |
Type returned by the |