J'essaie de créer un script Bash qui extraira le dernier paramètre donné à partir de la ligne de commande dans une variable à utiliser ailleurs. Voici le script sur lequel je travaille:
#!/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
Étant donné que les premiers paramètres peuvent être de n'importe quel nombre, je dois trouver un moyen d'extraire le dernier paramètre (par exemple, compact file.a file.b file.d files-abd.tar.gz). Tel qu'il est maintenant, le nom de l'archive sera inclus dans les fichiers à compacter. Y a-t-il un moyen de faire cela?