![Bash에서 마지막 매개변수를 제외한 모든 매개변수를 에코하는 방법은 무엇입니까?](https://linux55.com/image/143344/Bash%EC%97%90%EC%84%9C%20%EB%A7%88%EC%A7%80%EB%A7%89%20%EB%A7%A4%EA%B0%9C%EB%B3%80%EC%88%98%EB%A5%BC%20%EC%A0%9C%EC%99%B8%ED%95%9C%20%EB%AA%A8%EB%93%A0%20%EB%A7%A4%EA%B0%9C%EB%B3%80%EC%88%98%EB%A5%BC%20%EC%97%90%EC%BD%94%ED%95%98%EB%8A%94%20%EB%B0%A9%EB%B2%95%EC%9D%80%20%EB%AC%B4%EC%97%87%EC%9E%85%EB%8B%88%EA%B9%8C%3F.png)
나는 다음을 가지고 있습니다
#!/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과 동등한 것을 $#
시도할 필요가 없습니다 .${#...[@]}
$@