function tail() {
shift 1
echo $@
}
% tail one two three
two three
Como posso escrever o oposto desta função simples?
Eu quero alcançar
% init one two three
one two
e obter todos os argumentos, exceto o último, na $@
variável, para que a função possa ser escrita como
function init() {
# ???
echo $@
}
Eu tentei unset '@[-1]'
, unset '[@:-1]'
, de https://unix.stackexchange.com/a/611717/696135 mas estes não funcionam
Eu tentei set -- "${@:1:$(($#-1))}"
, unset "@[${#@[@]}-1]"
, set -- "${@:1:$#-1}"
de https://stackoverflow.com/questions/20398499/remove-last-argument-from-argument-list-of-shell-script-bash mas eles não funcionam
Um exemplo de um script que não funciona:
function init() {
set -- ${@:1:$#-1}
echo $@
}
init one two three