Bash에서 마지막 매개변수를 제외한 모든 매개변수를 에코하는 방법은 무엇입니까?

Bash에서 마지막 매개변수를 제외한 모든 매개변수를 에코하는 방법은 무엇입니까?

나는 다음을 가지고 있습니다

#!/bin/bash
function f1 ()
{
  echo "${@:1:-2}"
}
f1 1 2 3 4 5 6

1 2 3 4 5 man bash사용할 때 알려주려면 에코가 필요합니다 @. 음수 길이를 사용할 수 없습니다.

나는 계산( )을 사용했는데 "${@:1:$((${#@}-1))}", 이는 나에게 정통적이지 않은 것 같습니다.

출력에서 마지막 매개변수를 어떻게 제외할 수 있나요?

답변1

echo "${@:1:$#-1}"

길이 인수는 이미 산술적 맥락에 있으므로 필요하지 않으며 $(( ... ))인수 수는 에 의해 제공되므로 on과 동등한 것을 $#시도할 필요가 없습니다 .${#...[@]}$@

관련 정보