erreur de syntaxe près de jeton inattendu "faire" dans le script bash

J'ai des script bash qui prend 3 paramètres à partir de la ligne de commande. Il compare tous les fichiers dans le répertoire pour voir si elles sont du type de la première 2 paramètres. Si elles le sont, le script convertit les fichiers tels le type de la troisième paramètre à l'aide d'un FFMPEG commande. Je voudrais exécuter le script avec la commande suivante:

./convert.sh .avi .mp4 .flv 

Que cela, ce script serait de convertir toutes les .avi et .fichiers mp4 pour .flv.

Quand je lance le script, j'obtiens l'erreur

syntax error near unexpected token `do' in bash script.

Voici le code:

#!/bin/bash

# $1 is the first parameter passed
# $2 is the second parameter passed 
# $3 is the third parameter passed

for file in *.*; 
    do 
        #comparing the file types in the directory to the first 2 parameters passed
        if[  ( ${file: -4} == "$1" ) || ( ${file: -4 } == "$2" )  ]{
            export extension=${file: -4}
            #converting such files to the type of the first parameter using the FFMPEG comand
            do ffmpeg -i "$file" "${file%.extension}"$3;
done
  • Tester votre code avec shellcheck
  • Je l'ai fait mais je suis un débutant en bash. Je ne comprends pas certains messages d'erreur bien sur shellcheck. Aucune indication de l'endroit où je suis allé mal serait grandement apprécié.
  • Pour être honnête, je peux voir seulement la ligne shebang est correcte dans ce script 😐
InformationsquelleAutor Avi | 2016-05-11