Forum des développeurs  

Le forum de référence en programmation et développement. Articles, cours et tutoriels du débutant au chef de projet et DBA confirmé.
Précédent   Forum des développeurs > Hardware, Systèmes et Logiciels > Linux > Applications > Shell

Shell Vos questions sur l'utilisation des commandes shell

Réponse
 
Outils de la discussion
Vieux 09/07/2008, 10h58   #1 (permalink)
Futur Membre du Club
 
Date d'inscription: mars 2003
Âge: 28
Messages: 37
Par défaut [Bash] Egalité en Bash

Bonjour,

Je souhaite faire une sauvegarde de tous les répertoires à la racine de mon serveur, sauf certains répertoires.
Je compte le faire ne bash.
En utilisant le scripte :
Code :
#!/bin/bash

for i in $( ls / ) 
do 
	if [[ -d /$i ]]
	then
		if [[ $i==etc ]]
		then
			echo "répertoire a ignorer $i"
		else
			echo "répertoire à sauvegarder $i **********"
		fi
	else
		echo "fichier à ignorer $i"
	fi
done
Je n'obtient rien de bon.
Résultat du script précédant :
Citation:
répertoire a ignorer bin
répertoire a ignorer boot
répertoire a ignorer dev
répertoire a ignorer etc
répertoire a ignorer home
fichier à ignorer httpd.conf
répertoire a ignorer initrd
fichier à ignorer install.log
répertoire a ignorer lib
répertoire a ignorer lost+found
répertoire a ignorer mnt
répertoire a ignorer opt
fichier à ignorer pico.save
répertoire a ignorer proc
répertoire a ignorer root
répertoire a ignorer sbin
répertoire a ignorer tmp
répertoire a ignorer usr
répertoire a ignorer var
Bash met tous les répertoires dans les répertoire à ignorer.
Il devrait ignorer uniquement le répertoire etc.

Est-ce que quelqu'un sait utiliser la commande if en bash ainsi que le test d'égalité ?

Pour faire ce script, j'ai utilisé le site :
http://aral.iut-rodez.fr/fr/sanchis/...h/ar01s10.html

Merci d'avance
tulipebleu est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 09/07/2008, 11h41   #2 (permalink)
Membre éclairé
 
Avatar de Pilru
 
Date d'inscription: septembre 2007
Localisation: Groville
Messages: 362
Par défaut

Respectes les espaces avant et après ==
Pilru est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 09/07/2008, 11h58   #3 (permalink)
Membre éprouvé
 
Avatar de KindPlayer
 
Date d'inscription: février 2007
Messages: 451
Par défaut

Ecris
Code :
if [ -d $i ]
   if [ $i = etc ]
Pas de == pour les comparaisons de chaine en bash. Et ne mets pas de "/" devant $i (le repertoire ne s'appelle pas "/$i" mais bien $i.
__________________
La science est ce que nous comprenons suffisamment bien pour l'expliquer à un ordinateur. L'art, c'est tout ce que nous faisons d'autre.
Donald E. Knuth
KindPlayer est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 09/07/2008, 12h00   #4 (permalink)
Membre éprouvé
 
Avatar de KindPlayer
 
Date d'inscription: février 2007
Messages: 451
Par défaut autant pour moi

en fait /$i marche dans ce cas puisque c'est un chemin absolu depuis la racine
__________________
La science est ce que nous comprenons suffisamment bien pour l'expliquer à un ordinateur. L'art, c'est tout ce que nous faisons d'autre.
Donald E. Knuth
KindPlayer est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 09/07/2008, 13h37   #5 (permalink)
Futur Membre du Club
 
Date d'inscription: mars 2003
Âge: 28
Messages: 37
Par défaut

Ca marche.

Merci beaucoup.
tulipebleu est déconnecté   Envoyer un message privé Réponse avec citation
Réponse

Précédent   Forum des développeurs > Hardware, Systèmes et Logiciels > Linux > Applications > Shell



Outils de la discussion

Règles de messages
Vous ne pouvez pas créer de nouvelles discussions
Vous ne pouvez pas envoyer des réponses
Vous ne pouvez pas envoyer des pièces jointes
Vous ne pouvez pas modifier vos messages

Les balises BB sont activées : oui
Les smileys sont activés : oui
La balise [IMG] est activée : oui
Le code HTML peut être employé : non
Trackbacks are non
Pingbacks are non
Refbacks are non
Navigation rapide


Fuseau horaire GMT +1. Il est actuellement 14h50.


Publiez vos articles, tutoriels et cours et rejoignez-nous dans l'équipe de rédaction du club d'entraide</