Contenu | Rechercher | Menus

Annonce

Bientôt Ubuntu 16.04 LTS
Réservez vos DVD et clé USB Ubuntu-fr dès maintenant

En cas de déconnexions intempestives, merci de vous connecter à partir de cette page en cochant la case « Me connecter automatiquement lors de mes prochaines visites ».

#1 Le 07/10/2012, à 11:01

baba00000000
Membre

[Resolu] CKSFV reprendre le résultat pour faire un IF

Bonjour à tous et merci pour l'aide futur.

Je vais essayer d'être le plus clair possible.

J'ai trouve ce code:

#!/bin/bash
 
# require cksfv http://packages.ubuntu.com/feisty/i386/cksfv/download
 
# created by Daniel Høyer Iversenerr=$(cksfv -qf *.sfv 2>&1)
 
if [ ${#err} -ne 0 ];
 
then
 
     echo $err;
 
     echo "Please fix the file(s) and try again."
 
else
 
     echo "Everything OK."
 
     unrar x *.rar
 
fi

A cette adresse: http://dahoiv.net/programmering/bash/ba … -r00-files

j'arrive à bien faire mon chsfv, mais n'arrive pas à prendre l'erreur afin de fin ou le résultat positif afin que mon IF marche par la suite.

Deuxième chose je ne comprends pas trop dans le if ${#err}

Merci à tous.

Dernière modification par baba00000000 (Le 07/10/2012, à 18:26)


http://racketiciel.info

http://racketiciel.info/petition/ Pétition qui ferra peut être changé les installations sur les pc vendu en France.

Hors ligne

#2 Le 07/10/2012, à 11:41

pingouinux
Membre

Re : [Resolu] CKSFV reprendre le résultat pour faire un IF

Bonjour,
Je ne connais pas cksfv, mais voici ce que je peux dire :

# created by Daniel Høyer Iversenerr=$(cksfv -qf *.sfv 2>&1)

La commande est incluse dans le commentaire. C'est sans doute ceci :

# created by Daniel Høyer Iversen
err=$(cksfv -qf *.sfv 2>&1)

mais 2>&1 me paraît bizarre.

je ne comprends pas trop dans le if ${#err}

${#err} est le nombre de caractères du contenu de la variable $err

Hors ligne

#3 Le 07/10/2012, à 16:56

baba00000000
Membre

Re : [Resolu] CKSFV reprendre le résultat pour faire un IF

J'ai fais un truc du style:

err=`cksfv -c -f *.sfv | grep -c 'Everything'`
if [ $err -ne 1 ];
 then
 echo $err; 
     echo "Please fix the file(s) and try again." 
else
  echo "Everything OK."  
fi

J'ai magouiller, car c'est pas forcément ce qu'il faut faire.
Comme je sais que le résultat est soit Errors Occured ou Everything Ok.

Edit: Merci pingouinux pour ton éclaircissement sur mon problème. J'allais oublier le plus important.

Dernière modification par baba00000000 (Le 07/10/2012, à 16:58)


http://racketiciel.info

http://racketiciel.info/petition/ Pétition qui ferra peut être changé les installations sur les pc vendu en France.

Hors ligne

#4 Le 07/10/2012, à 17:08

pingouinux
Membre

Re : [Resolu] CKSFV reprendre le résultat pour faire un IF

Ça devrait marcher, mais je pense que ceci aussi :

cksfv -c -f *.sfv || echo "Please fix the file(s) and try again."

Hors ligne

#5 Le 07/10/2012, à 17:34

nesthib
  ⃛ɹǝsn xnuᴉꞁ uʍop-ǝpᴉsdn

Re : [Resolu] CKSFV reprendre le résultat pour faire un IF

pingouinux a écrit :

mais 2>&1 me paraît bizarre.

Le script est sûrement récupéré du web, il s'agit de caractères spéciaux en HTML.

> → >
& → &

il faut donc lire :

commande 2>&1

soit une redirection de stderr sur stdout

Hors ligne

#6 Le 07/10/2012, à 17:40

pingouinux
Membre

Re : [Resolu] CKSFV reprendre le résultat pour faire un IF

@nesthib : Merci pour ces précisions, car je ne parle pas le web couramment. smile

Hors ligne

#7 Le 07/10/2012, à 18:25

baba00000000
Membre

Re : [Resolu] CKSFV reprendre le résultat pour faire un IF

Merci pingouinux et nesthib pour votre aide et aussi pour toutes les infos données.

et voilà le bon code:

err=$(cksfv -qf *.sfv 2>&1)
 
if [ ${#err} -ne 0 ];
 then
      echo "Please fix the file(s) and try again."
 else
     echo "Everything OK."
      unrar x *.rar
 fi

Je vais mettre résolu.


http://racketiciel.info

http://racketiciel.info/petition/ Pétition qui ferra peut être changé les installations sur les pc vendu en France.

Hors ligne