В последнем аргументе LAST
будет установлен без изменения текущей среды:
LAST=$({
shift $(($#-1))
echo $1
})
echo $LAST
Если другие аргументы больше не нужны и их можно сместить, их можно упростить до:
shift $(($#-1))
echo $1
По причинам переносимости:
shift $(($#-1));
можно заменить на:
shift `expr $# - 1`
Заменив также $()
обратными кавычками, мы получим:
LAST=`{
shift \`expr $# - 1\`
echo $1
}`
echo $LAST