function tail() {
shift 1
echo $@
}
% tail one two three
two three
我怎样才能写出这个简单函数的反函数?
我想实现
% init one two three
one two
并获取变量中除最后一个参数之外的所有参数$@
,因此该函数可以写成
function init() {
# ???
echo $@
}
我已经尝试过unset '@[-1]'
,,unset '[@:-1]'
来自https://unix.stackexchange.com/a/611717/696135,但这些不起作用
我已经尝试过set -- "${@:1:$(($#-1))}"
,,来自https://stackoverflow.com/questions/20398499/remove-last-argument-from-argument-list-of-shell-script-bashunset "@[${#@[@]}-1]"
,但这些不起作用set -- "${@:1:$#-1}"
不起作用的脚本示例:
function init() {
set -- ${@:1:$#-1}
echo $@
}
init one two three