pub async fn simple_command<'a, R, V, W, IV, IW, S, E>(
vars: IV,
words: IW,
env: &'a mut E,
) -> Result<BoxFuture<'static, ExitStatus>, S::Error>where
IV: Iterator<Item = RedirectOrVarAssig<R, V, W>>,
IW: Iterator<Item = RedirectOrCmdWord<R, W>>,
R: RedirectEval<E, Handle = E::FileHandle>,
R::Error: 'static + Error + From<RedirectionError>,
W: WordEval<E>,
W::Error: 'static + Error,
E: ?Sized + Send + Sync + AsyncIoEnvironment + BuiltinEnvironment<BuiltinName = <E as FunctionEnvironment>::FnName> + ExecutableEnvironment + ExportedVariableEnvironment + FileDescEnvironment + FileDescOpener + FunctionEnvironment<Fn = S> + FunctionFrameEnvironment + SetArgumentsEnvironment + UnsetVariableEnvironment + WorkingDirectoryEnvironment,
E::Builtin: BuiltinUtility<'a, Vec<W::EvalResult>, EnvRestorer<'a, E>, E>,
E::Arg: From<W::EvalResult>,
E::Args: From<VecDeque<E::Arg>>,
E::FileHandle: Send + Sync + Clone + FileDescWrapper + From<E::OpenedFileHandle>,
E::FnName: From<W::EvalResult>,
E::IoHandle: Send + Sync + From<E::FileHandle>,
E::VarName: Send + Sync + Clone + Borrow<String> + From<V>,
E::Var: Send + Sync + Clone + Borrow<String> + From<W::EvalResult>,
S: Spawn<E> + Clone,
S::Error: From<R::Error> + From<W::Error> + From<CommandError> + From<RedirectionError>,Expand description
Spawns a shell command (or function) after applying any redirects and environment variable assignments.