diff --git a/src/uu/env/src/env.rs b/src/uu/env/src/env.rs index 0e51cf748..01f63a1c8 100644 --- a/src/uu/env/src/env.rs +++ b/src/uu/env/src/env.rs @@ -227,7 +227,11 @@ fn run_env(args: impl uucore::Args) -> UResult<()> { // read NAME=VALUE arguments (and up to a single program argument) while !begin_prog_opts { if let Some(opt) = iter.next() { - begin_prog_opts = parse_name_value_opt(&mut opts, opt)?; + if opt == "-" { + opts.ignore_env = true; + } else { + begin_prog_opts = parse_name_value_opt(&mut opts, opt)?; + } } else { break; } diff --git a/tests/by-util/test_env.rs b/tests/by-util/test_env.rs index 74bb805a7..3172320f3 100644 --- a/tests/by-util/test_env.rs +++ b/tests/by-util/test_env.rs @@ -120,8 +120,8 @@ fn test_multiple_name_value_pairs() { fn test_ignore_environment() { let scene = TestScenario::new(util_name!()); - scene.ucmd().arg("-i").run().no_stdout(); - scene.ucmd().arg("-").run().no_stdout(); + scene.ucmd().arg("-i").succeeds().no_stdout(); + scene.ucmd().arg("-").succeeds().no_stdout(); } #[test]