Re: [ssfr] test: trop d'arguments

[ Thread Index | Date Index | More debianworld.org/shellscript-fr Archives ]




> 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,

--
Stephane

Une messagerie gratuite, garantie à vie et des services en plus, ça vous tente ?
Je crée ma boîte mail www.laposte.net



Mail converted by MHonArc 2.6.19+ http://listengine.tuxfamily.org/