diff --git a/src/uu/echo/src/echo.rs b/src/uu/echo/src/echo.rs index a7a1ba09e..2386e87a0 100644 --- a/src/uu/echo/src/echo.rs +++ b/src/uu/echo/src/echo.rs @@ -167,6 +167,9 @@ pub fn uumain(args: impl uucore::Args) -> UResult<()> { // echo --help uu_app().print_help()?; return Ok(()); + } else if args.len() == 1 && args[0] == "--version" { + print!("{}", uu_app().render_version()); + return Ok(()); } else { // if POSIXLY_CORRECT is not set we filter the flags normally filter_flags(args.into_iter()) diff --git a/tests/by-util/test_echo.rs b/tests/by-util/test_echo.rs index 6bb694f99..24c8efdf1 100644 --- a/tests/by-util/test_echo.rs +++ b/tests/by-util/test_echo.rs @@ -4,6 +4,7 @@ // file that was distributed with this source code. // spell-checker:ignore (words) araba merci efjkow +use regex::Regex; use uutests::new_ucmd; use uutests::util::TestScenario; use uutests::util::UCommand; @@ -514,6 +515,14 @@ fn partial_help_argument() { new_ucmd!().arg("--he").succeeds().stdout_is("--he\n"); } +#[test] +fn full_version_argument() { + new_ucmd!() + .arg("--version") + .succeeds() + .stdout_matches(&Regex::new(r"^echo \(uutils coreutils\) (\d+\.\d+\.\d+)\n$").unwrap()); +} + #[test] fn only_help_argument_prints_help() { assert_ne!(new_ucmd!().arg("--help").succeeds().stdout(), b"--help\n");