Pb en shell

guill10 Messages postés 2 Date d'inscription jeudi 29 décembre 2005 Statut Membre Dernière intervention 29 juin 2009 - 25 juin 2009 à 11:51
guill10 Messages postés 2 Date d'inscription jeudi 29 décembre 2005 Statut Membre Dernière intervention 29 juin 2009 - 29 juin 2009 à 09:45
Bonjour, actuellement je suis en stage dans une entreprise en réseau, et je suis entrain de travailler sur un ensemble de script en shell écrit par une personne ne faisant plus partie de la société. Cependant je ne comprend pas, un passage d'un script qui est le suivant :

# Fichiers
rulesdir="/etc/firewall/rules.d"

if [ -d $rulesdir ]; then
    echo "    > Inclusion des scripts de $rulesdir"
    cd $rulesdir
    for rulesfile in *; do
        [ -f $rulesfile \
        -a $rulesfile = ${rulesfile%\~} \
        -a $rulesfile = ${rulesfile#\#} \
        -a $rulesfile = ${rulesfile#\.} \
        ] && echo "       ->  $rulesfile" && . $rulesfile
    done
fi

Dans cette partie je ne vois pas a quoi correspond la ligne dans la boucle for.

Merci par avance
Guillaume

2 réponses

cptpingu Messages postés 3837 Date d'inscription dimanche 12 décembre 2004 Statut Modérateur Dernière intervention 28 mars 2023 123
28 juin 2009 à 04:38
# Fichiers
rulesdir="/etc/firewall/rules.d"

if [ -d $rulesdir ]; then # Si $rulesdir est un dossier
    echo "    > Inclusion des scripts de $rulesdir"
    cd $rulesdir
    for rulesfile in *; do # Pour chacun des fichiers présents dans $rulesdir
        [ -f $rulesfile \  # Si le fichier en cours est bien un fichier (et pas un dossier)
        -a $rulesfile = ${rulesfile%\~} \ # ET qu'il ne finit pas par ~
        -a $rulesfile = ${rulesfile#\#} \ # ET qu'il ne commence pas par #
        -a $rulesfile = ${rulesfile#\.} \   # ET qu'il ne commence pas par .
                                                           # (en gros si c'est ni un fichier temporaire, ni un fichier caché).
        ] && echo "       ->  $rulesfile" # Alors afficher ce message
         && . $rulesfile # Puis exécuter ce fichier.
    done
fi

C'est en gros un script qui exécute tout les script contenus dans /etc/firewall/rules.d
0
guill10 Messages postés 2 Date d'inscription jeudi 29 décembre 2005 Statut Membre Dernière intervention 29 juin 2009
29 juin 2009 à 09:45
slt merci pour ta réponse.
Ca va énormément m'aider
Guillaume
0
Rejoignez-nous