Извлечь параметры перед последним параметром в «$ @»

Я пытаюсь создать сценарий Bash, который будет извлекать последний параметр, заданный из командной строки, в переменную, которая будет использоваться в другом месте. Вот сценарий, над которым я работаю:

#!/bin/bash
# compact - archive and compact file/folder(s)

eval LAST=\$#

FILES="$@"
NAME=$LAST

# Usage - display usage if no parameters are given
if [[ -z $NAME ]]; then
  echo "compact <file> <folder>... <compressed-name>.tar.gz"
  exit
fi

# Check if an archive name has been given
if [[ -f $NAME ]]; then
  echo "File exists or you forgot to enter a filename.  Exiting."
  exit
fi

tar -czvpf "$NAME".tar.gz $FILES

Поскольку первые параметры могут быть любого числа, я должен найти способ извлечь последний параметр (например, компактный файл. Файл.б файл.d файлы-a-b-d.tar.gz). Как сейчас, имя архива будет включено в файлы для сжатия. Есть ли способ сделать это?

Ответы на вопрос(15)

Ваш ответ на вопрос