Rechercher : dans
Par :

Script bash: exclure le repertoire courant

Dernière réponse le 10 mar 2009 à 11:50:47 snow_frog, le 9 mar 2009 à 21:38:36 
 Signaler ce message aux modérateurs

Bonjour,

voilà un petit script qui permet d'automatiser diffèrentes retouches sur des images:

#!/bin/bash
DATA="*.jpg"
for DIR in `find -type d`; do
for FILE in $DIR/$DATA ; do
for i in $FILE ; do

convert -trim $i $i.trim

done
done
done


par contre le défaut, c'est que si je n'ai pas de fichier .jpg dans le repertoire courant, il

convert: unable to open image `./*.jpg': No such file or directory.
convert: missing an image filename `./*.jpg.trim'.


normal car il n'y a de .jpg dans le rep courant, mais comment faire pour ne pas afficher les lignes d'erreurs ? faut il envoyer le resultat dans /dev/null ? mais dans ce cas comment faire ?
Configuration: Linux
Konqueror 3.5

Meilleures réponses pour « script bash: exclure le repertoire courant » dans :
Créez votre propre commande linux Voir1. Création du script bash 2. Rendre la commande exécutable 1. Création du script bash Dans un premier temps, il faut que vous créyiez votre script Bash qui sera exécuté lors de votre commande. Par exemple, pour le mien j'ai ...
Bash - Les paramètres VoirIntroduction Les paramètres positionnels Exemple 1 Les paramètres spéciaux Exemple 2 Initialiser des paramètres - La commande "set" - Exemples - La commande "shift" - Exemple 3 Introduction Il est possible de fournir à un script,...
Exécuter un script shell VoirExécution d'un script Pour pouvoir exécuter un script ou un programme en ligne de commande il y a plusieurs possibilités : 1. Le chemin absolu 2. Le chemin relatif 3. Modifier la variable PATH Note: Le Sha-Bang Premièrement,...

1

lami20j, le 9 mar 2009 à 21:49:03

Salut,

convert -trim $i $i.trim 2>/dev/null
106485010510997108

Répondre à lami20j

2

snow_frog, le 10 mar 2009 à 08:44:59

Merci bien.

==> résolu

Répondre à snow_frog

3

(Pabix), le 10 mar 2009 à 09:53:57

Bonjour, ton script n’est pas correct, si tu as des espaces dans les noms de fichiers, ça ne marchera jamais et ça peut être dangereux, voici ce que je te suggère :

#!/usr/bin/env bash

find . -iname "*.jpg" | while read i ; do

"$(dirname "$i)" != "." && convert -trim "$i" "$i.trim"

done


PS. excuse le lien, mets entre double crochets ( [[ ) les instructions soulignées.

Répondre à (Pabix)

4

 snow_frog, le 10 mar 2009 à 11:50:47

Merci de l'info,

je testerai avec des noms de ficher contenant des espaces.

Répondre à snow_frog