我有以下内容
#!/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的等效项$@
。