如何在 bash 中回显除最后一个参数之外的所有参数?

如何在 bash 中回显除最后一个参数之外的所有参数?

我有以下内容

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

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

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

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

答案1

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

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

相关内容