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 |