Re: piti script fin :) (long mail)

Page principale

Répondre à ce message
Auteur: Patrick Dugnolle
Date:  
À: guilde
Anciens-sujets: piti script fin :)
Sujet: Re: piti script fin :) (long mail)

>         Hello !

>
> Merci pour toutes vos réponses :)
>
> En fait j'avai fini par réussir avec un fichier temporaire, m'enfin
> ca n'est pa très clean :)


quand on peut faire sans c'est mieux. le problème avec les fichiers
temporaire c'est qu'il faut le droit d'écriture sur le disque.
si le scripte il est que pour toi c'est pas grave, au pire il plantera
si y peut pas écrire.
si il est plus ouvert (genre scripte cgi pour serveur web - et là bien
souvent tu es contraint d'utiliser des fichiers temporaires) tu écris ton
fichier dans le /tmp qui est ouvert à tous en écriture...
c'est pourquoi il peut etre interessant de mettre son /tmp dans une
partition séparée, afin de ne pas risquer de saturer sa partition racine.

> Voici ce que j'avais fait :
>
> #!/bin/sh


ton scripte c'est du sh, donc typiquement du bash sous linux.
tu fais un
man bash
pour ouvrir ton manuel sur le bon chapitre
puis tu tapes tel quel
/someZing
pour trouver ce dont tu as besoin (une /EVAL uation logique par exemple)
en tapant juste
n
pour next, tu passes à la suite de l'histoire
et tu auras presque toutes tes réponses... c'est vrai c'est un peu le
bordel, mais en cherchant on finit toujours par trouver !

> #Visualiseur de Screenshots via xv par ref
> kiniconaitrienenscritptologie
> #placez ce fichier dans votre PATH, ca sera plus simple.
>
> if [ "$1" = "" ]; then
>         echo "vous devez faire 'views nom_du_fichier.jpg pas le gz'"
>         sleep 3
>         echo "bozal !"

>
> else
>         gunzip $1.gz
>         mv $1 ~/


pourquoi déplacer $1, il t'a rien demander ?
>         xv ~/$1

tu peux très bien faire directement
xv $1

>         mv ~/$1 ./


non ?

>         gzip $1
> fi

>
> le pb avec ceci, c'est qu'il ne fallait pa taper l'extension gz...


à ce moment là tu fais juste
gunzip $1
rq: $1 contient l'extension gz
puis
xv `basename $1 .gz`

>
> bon pour mon apprentissage, j'aurias voulu rajouter un ET dans la
> première étape :


tu cherches dans ton man bash cette chose [ Expr ]
en faisant
/\[ expr \]
parce les crochets sont des caractères spéciaux.

> je voulais tester s'il y avait une entrée et au cas ou cette enrée
> existe, tester avev un grep si il existait uen extension gz dans le
> fichier, d'après le peu de doc que j'ai, ça n'est pas evident...


c'est pas d'un grep dont ta besoin pour ça.
parcequ'un grep travaille sur le contenu du fichier et pas sur le nom

> enfin pour moi, quelqu'un connait une instruction style test booléen
> sur un grep ?


enfin si c'est ce que tu veux...
tester la sortie d'un grep pourquoi pas kekchose comme :
if[ $1 -a `echo $1 | grep gz` ];

attention aux anti-quotes ` que tu obtiens par un alt-gr 7
elles sont nécéssaires pour indiquer à sh d'exécuter la commande par un
sous-shell et de remplacer l'ensemble par la chaine de caractères
résultat. si ton grep te renvoie une chaine de longueur 0 cela devrait
donner du faux selon ton manuel.
tu peux vérifier qu'un echec de grep te rend une chaine de longueur 0
avec

grep kinaipadan ceFichier | wc -c
en effet le | demande à ton shell unix rediriger la sortie de grep dans
la commande word count (char) qui te retourne le nombre de caractères de
son flux d'entrée.

>
> merci


pas de quoi

> ref qui n'y connait rien en programmation de toute sorte :)
>


Patrick qui n'y connait à peine +

conseil: passe en csh, c'est plus facile si tu connais un tout petit peu 
         le C..., et meme en tcsh si tu l'as !


----------
Equipe SIC, Laboratoire TIMC-IMAG, UMR CNRS 5525
Institut Albert Bonniot, Domaine de la Merci
38706 La Tronche Cedex, France
Tel : 33 4 7654 9410 - Fax : 33 4 7654 9549
http://www-timc.imag.fr/~dugnolle