diff --git a/src/uu/shuf/src/shuf.rs b/src/uu/shuf/src/shuf.rs index d7ce8049d..4052af49e 100644 --- a/src/uu/shuf/src/shuf.rs +++ b/src/uu/shuf/src/shuf.rs @@ -129,6 +129,7 @@ pub fn uu_app() -> Command { .help("treat each ARG as an input line") .use_value_delimiter(false) .num_args(0..) + .action(clap::ArgAction::Append) .conflicts_with(options::INPUT_RANGE), ) .arg( diff --git a/tests/by-util/test_shuf.rs b/tests/by-util/test_shuf.rs index c506bc51a..eca914f9f 100644 --- a/tests/by-util/test_shuf.rs +++ b/tests/by-util/test_shuf.rs @@ -79,6 +79,27 @@ fn test_echo() { assert_eq!(result_seq, input_seq, "Output is not a permutation"); } +#[test] +fn test_echo_multi() { + let result = new_ucmd!() + .arg("-e") + .arg("a") + .arg("b") + .arg("-e") + .arg("c") + .succeeds(); + result.no_stderr(); + + let mut result_seq: Vec = result + .stdout_str() + .split('\n') + .filter(|x| !x.is_empty()) + .map(|x| x.into()) + .collect(); + result_seq.sort_unstable(); + assert_eq!(result_seq, ["a", "b", "c"], "Output is not a permutation"); +} + #[test] fn test_head_count() { let repeat_limit = 5;