la variable $a, c'est juste pour éviter l'interférence des guillemets simples dans sed.
Pour les ' ' entre les " ", c'est pour dire à sed de remplacer les retours à la ligne par ' ' et comme tu as la variable $total également entre guillemets simples, ça donne ce résultat:
Normalement ça permet de ne pas prendre en compte les espaces comme des séparateurs...
mencoder -ovc copy -oac copy -o video '/chemin/vers/fichier1' '/chemin/vers/fichier2' '/chemin/vers/fichier3'
Pour l'écriture "${VAR}", c'est normalement ainsi que l'on note une variable dans un script.
Les guillemets ne sont pas nécessaire si tu place la variable dans un echo (par exemple: echo "blabla ${VAR} blabla") mais sinon il faut toujours penser à les mettre sinon, si ta variable est faite d'espaces ou n'est pas définie pour une raison ou une autre, tu te retrouve avec des erreurs. (ex: [ ${VAR} != 3 ] , si VAR n'existe pas, le code sera [ != 3 ] ce qui est faux alors que [ "" != 3 ] serai valide)
Et pour les crochets, c'est pareil, c'est pour éviter les erreurs:
$ var1=test
$ var=blabla
$ echo "$var1 - ${var1}"
blabla1 - test
Pour "natilus script current uri", si je ne me trompe pas, c'est le dossier ou l'on se trouve en lançant le script mais si je me trompe...