除了 bash 中的最后一个参数,我如何回显所有参数?

Bre*_*eph 2 bash parameter bash-functions

我有以下

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

我需要 echo1 2 3 4 5 man bash告诉我,当我使用时,@我不能使用负长度。

我求助于使用计算 ( "${@:1:$((${#@}-1))}") 这对我来说似乎是非正统的。

如何从输出中排除最后一个参数?

Kus*_*nda 5

echo "${@:1:$#-1}"
Run Code Online (Sandbox Code Playgroud)

length 参数已经在算术上下文中,因此不需要$(( ... )),并且参数的数量由 给出,$#因此无需尝试使用${#...[@]}on的等效项$@