Aller au menu - Aller au contenu

Les boucles

Pour accéder à cette section
Connectez-vous !
connexion_rpx
Page 1 
Pseudo Commentaire
Page 1 
Hors ligne Informagun8787 # Posté le 28/05/2009 à 13:04:38

Études : Faculté de Médecine ROUEN

Super... :'(
Hors ligne spider-mario # Posté le 28/05/2009 à 14:46:57
Avatar

Ville : Montigny-lès-cormeilles
Pays : France métropolitaine
Études : INSA Rouen

Plutôt que Code : Bash
1
2
3
4
for file in `ls`
do
...
done

Ne vaut-il pas mieux
Code : Bash
1
2
3
4
for file in *
do
...
done

?

En tout cas je me sers très souvent des boucles for, elles servent énormément :D
Hors ligne Hizoka # Posté le 28/05/2009 à 17:47:53
Avatar

C'est ce que je fais aussi spider-mario :)

perso je mets des doubles crochets, mais je ne sais plus pourquoi, j'avais rencontré un problème.... mais le quel....

4 étoiles niveau difficulté, c'est pas un peu beaucoup ?
Hors ligne flyinglamer # Posté le 29/05/2009 à 07:33:58
Flutiôt !
Avatar

Études : INSA Lyon

Il me semble que le for a aussi une forme semblable à celle du C.

Code : Bash
1
2
3
4
for ((i=0; i < 10; i++))
do
    instructions
done

"Give a monkey a brain and he'll swear he's the center of the universe"
 
Hors ligne Davilink # Posté le 23/06/2009 à 02:50:14
hmm...!?

Ville : Montréal-est
Pays : Canada

Problème, qu'est ce qui se passe si le nom du fichier contient une espace, sa bogue le script. Sa aurait été utile de prévenir et de montrer comment contrer ce problème.
Hors ligne djibril013 # Posté le 28/11/2009 à 21:53:18

Bonjour,

je souhaiterais automatiser la création de fichier .deb
J'en ai 120 à faire donc c'est un long a faire un par un.

Comment faire svp?

j'ai fais ca mais ca ne marche pas:

#!/bin/bash
# créer des paquets debian à partir de dossier

for i in "$@"
do
DOSSIER=$1
cd $DOSSIER
echo "Nom de l'archive"
read NOM
dpkg-deb -b $NOM
done
Hors ligne Agmenor # Posté le 23/12/2009 à 17:01:03
Ubuntéro pérégrinant
Avatar

Avis : Très bon

Ville : Palaiseau
Pays : France métropolitaine
Études : Polytechnique

Hello!
Ouah! Je suis presque arrivé au bout du tuto. Il est vraiment superbe et m'a fait apprendre tout ce que je voulais sur Linux, et même plus.
À propos de cette page, j'ai fait l'exercice proposé multirenommage.sh. Mon script semble fonctionner, mais j'ai juste encore un écueil quant aux fichiers dont le nom contient un espace. Il servira peut-être de solution à un autre zéro?
Merci pour le tutoriel et bonne programmation!

Code : Bash
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
#!/bin/bash
#Rajouter le suffixe "-old" aux noms de fichiers.

#Si l'utilisateur n'a pas ajouté d'argument à l'appel du programme.
if [ $# = 0 ]
then
	read -p 'Entrez la liste des fichiers:' liste
	bash multirenommage.sh $liste
fi

#Si l'utilisateur a bien mis des arguments à l'appel du programme.
while [ $# != 0 ]
do
	mv $1 $1-old
	shift
done

Image utilisateur

Image utilisateur
 
Hors ligne yeyain # Posté le 07/01/2010 à 15:47:01

Juste comme sa ton bash la il change, mais y a rien pour lui dire de s'arreter a un moment?! je cherche comment lui dire de s'arreter quand il y a pu de fichier a copier car moi il continue a vouloir modifier des fichier alors qu'il sont tous fait.
Hors ligne blatman100 # Posté le 09/06/2010 à 22:41:56

J'ai dû chercher sur le net pour trouver la solution qui me semble idéale. Elle utilise le terme "$@" qui correspond à l'ensemble des paramètres envoyés.
A partir de ce moment il est très simple de coder le reste. :p
En espérant en avoir aidé certains.
Hors ligne computerman # Posté le 03/07/2011 à 19:01:02

Bonjour,
Je vous propose cette solution pour le multirenommage :

Code : Bash
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
while [ $# -eq 0 ] && [ -z $fichier_a ]
do
  read -p 'saisissez le nom des fichiers à renommer : ' fichier_a
  
done

extension = `find -name "$fichier_a" | cut -d . -f 2`

for fichier in `find -name "$fichier_a" | cut -d . -f 1`

do
  mv $fichier-.$extension $fichier-old-.$extension
done


Dites moi ce que vous pensez.
Pour accéder à cette section
Connectez-vous !
connexion_rpx