Précédent   Forum des professionnels en informatique > Systèmes > Linux > Applications > Shell
Shell Vos questions sur l'utilisation des commandes shell
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 04/01/2012, 10h04   #1
Candidat au titre de Membre du Club
 
Homme
Inscription : janvier 2012
Messages : 29
Détails du profil
Informations personnelles :
Sexe : Homme

Informations forums :
Inscription : janvier 2012
Messages : 29
Points : 10
Points : 10
Par défaut Boucle FOR incompréhensible

Bonjour,

Voilà je suis débutant en script shell, et là je cherche mais je suis coincé, donc je fais appel à vos talents.

Dans un script, j'ai la boucle suivante :

Code :
1
2
3
4
5
6
for i in $(ls)									
  do										
  if file $i |  cut -d: -f2 | grep text  >/dev/null				
      then clear								
      more $i									
fi
Mon problème est tout simple, je ne la comprend pas ! (SVP, ne rigolez pas)
au niveau des commande du IF, je pense que ça va, si je comprends bien "les fichiers dont le 2eme champs (le séparateur de champ est un ':') est "text" sont envoyé dans /dev/null" non ?

Au passage, petite question : dans une condition IF, j'ai une instruction de type "exec echo "mon message", à quoi sert la commande exec ? j'ai lu pas mal de chose sur ça, mais ça reste flou pour moi.

Merci d'avance,

Cordialement,

Malik.
malik0 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/01/2012, 10h47   #2
Expert Confirmé Sénior
 
Avatar de N_BaH
 
Inscription : février 2008
Messages : 2 072
Détails du profil
Informations forums :
Inscription : février 2008
Messages : 2 072
Points : 4 155
Points : 4 155
Bonjour,

ce qui est envoyé à dev/null, c'est la sortie du grep, c'est tout.

si "text" est dans le deuxième champ de la sortie de file,
alors clear; more...
finsi

exec remplace le shell par la commande en argument; quand la commande est terminée, ça quitte le shell. pour en savoir un peu plus help exec.

et ON NE FAIT PAS for i in $(commande), si la commande retourne une ligne contenant des espaces, ou pire, la boucle s'exécutera sur chaque élément, pas sur la ligne !
N_BaH est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 04/01/2012, 12h05   #3
Candidat au titre de Membre du Club
 
Homme
Inscription : janvier 2012
Messages : 29
Détails du profil
Informations personnelles :
Sexe : Homme

Informations forums :
Inscription : janvier 2012
Messages : 29
Points : 10
Points : 10
D'accord, je prends note de tout ça.
Merci de votre réponse rapide.
Je pense que je repasserai bientôt

Malik.
malik0 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 06h28.


 
 
 
 
Partenaires

Hébergement Web