Re: [ssfr] test: trop d'arguments |
[ Thread Index |
Date Index
| More debianworld.org/shellscript-fr Archives
]
Le 05-06-2012, à 15:19:44 +0200, stephane.billiart@xxxxxxxxxxx (stephane.billiart@xxxxxxxxxxx) a écrit :
>
>
>
> > Message du 05/06/12 15:07
> > De : "steve"
> > A : shellscript-fr@xxxxxxxxxxxxxxx
> > Copie à :
> > Objet : Re: [ssfr] test: trop d'arguments
> >
> >
> > Par contre j'ai oublié une autre chose. J'ai mis #!/bin/bash comme
> > shebang, et mon script marche. J'ai essayé de mettre #!/bin/sh, et tout
> > d'un coup :
> >
> > /home/steve/bin/is_image : 6 : test : Composite : unexpected operator
> > /home/steve/bin/is_image : 6 : test : image : unexpected operator
> > /home/steve/bin/is_image : 6 : test : image : unexpected operator
> > /home/steve/bin/is_image : 6 : test : image : unexpected operator
> > /home/steve/bin/is_image : 6 : test : image : unexpected operator
> > /home/steve/bin/is_image : 6 : test : text : unexpected operator
> >
> >
> > Pourquoi ?
>
> Parce que tu es sous Ubuntu/Debian, que sh n'est pas bash mais
> dash et que ton script n'est pas compatible Bourne mais utilise
> des extensions bash
>
> Pour gerer les espaces tu pourrais simplement ajouter des guillemets
> test "$(file -b --mime-type "$1" | cut -d "/" -f1)" == 'image'
>
> Pour que ca marche sous n'importe quel shell Bourne compatible, tu changes
> en
> if [ "`file -b --mime-type "$1" | cut -d "/" -f1`" = 'image' ]; then
> echo image
> fi
>
> Voila,
Merci pour tes explications, je m'endormirai un peu moins bête ce
soir :-)
Je m'en vais tester tout ça un peu plus tard, là le script est en train
de tourner.