diff --git a/src/uu/expr/src/expr.rs b/src/uu/expr/src/expr.rs index ea559090c..909c4c376 100644 --- a/src/uu/expr/src/expr.rs +++ b/src/uu/expr/src/expr.rs @@ -5,7 +5,7 @@ use clap::{crate_version, Arg, ArgAction, Command}; use uucore::{ - error::{UResult, USimpleError}, + error::{UResult, USimpleError, UUsageError}, format_usage, help_about, help_section, help_usage, }; @@ -58,6 +58,10 @@ pub fn uumain(args: impl uucore::Args) -> UResult<()> { .map(|v| v.into_iter().map(|s| s.as_ref()).collect::>()) .unwrap_or_default(); + if token_strings.is_empty() { + return Err(UUsageError::new(2, "missing operand")); + } + match process_expr(&token_strings[..]) { Ok(expr_result) => print_expr_ok(&expr_result), Err(expr_error) => Err(USimpleError::new(2, &expr_error)), diff --git a/tests/by-util/test_expr.rs b/tests/by-util/test_expr.rs index 72d7687b7..41fc8d454 100644 --- a/tests/by-util/test_expr.rs +++ b/tests/by-util/test_expr.rs @@ -11,7 +11,7 @@ fn test_no_arguments() { new_ucmd!() .fails() .code_is(2) - .stderr_only("expr: missing operand\n"); + .usage_error("missing operand"); } #[test]