Si on veut autoriser les "." dans les noms de fichier (et ne considérer comme extension que ce qui est après le dernier), il vaut mieux utiliser "${foo%.*}.${foo##*.}". Perso j'utiliserais aussi des double-quotes un peu partout, en cas de nom de fichiers avec des espaces. Bref en résumé :
[^] # Re: Bash et les remplacement de paramètres
Posté par tgl . En réponse au message Bash : Verification de la syntaxe d'un argument. Évalué à 3.
if [ "${arg}" != "${arg%.*}.${arg##*.}" ]