Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 15/02/2017, à 16:35

elleji

RESOLU - explication demandée sur for...

bonjour,
quelqu'un peut-il m'expliquer ? ( je seche )
#!/bin/sh
for var in *.txt; do
    echo "$var"
done
exit 0
merci

Dernière modification par elleji (Le 16/02/2017, à 13:51)


celui qui ne cherche qu'à s'occuper et c'est tout ce qu'il a trouvé ...

Hors ligne

#2 Le 15/02/2017, à 17:14

erresse

Re : RESOLU - explication demandée sur for...

Salut,
Et que faut-il expliquer ???
Ta boucle liste les noms de fichiers *.txt du répertoire courant... Où est le souci ?


Plus de 50 ans d'informatique, ça en fait des lignes de commandes en console, mais on n'avait pas le choix...
Excellente raison pour, aujourd'hui qu'on le peut, utiliser au maximum les INTERFACES GRAPHIQUES !
Important : Une fois résolu, pensez à clore votre sujet en ajoutant [Résolu] devant le titre du 1er message, et un bref récapitulatif de la solution à la fin de celui-ci. Merci.

Hors ligne

#3 Le 15/02/2017, à 17:36

elleji

Re : RESOLU - explication demandée sur for...

justement , pourquoi les noms de fichier ?


celui qui ne cherche qu'à s'occuper et c'est tout ce qu'il a trouvé ...

Hors ligne

#4 Le 15/02/2017, à 17:40

erresse

Re : RESOLU - explication demandée sur for...

Sans doute parce-que la syntaxe est équivalente à "ls" dans ce cas...


Plus de 50 ans d'informatique, ça en fait des lignes de commandes en console, mais on n'avait pas le choix...
Excellente raison pour, aujourd'hui qu'on le peut, utiliser au maximum les INTERFACES GRAPHIQUES !
Important : Une fois résolu, pensez à clore votre sujet en ajoutant [Résolu] devant le titre du 1er message, et un bref récapitulatif de la solution à la fin de celui-ci. Merci.

Hors ligne

#5 Le 15/02/2017, à 20:52

elleji

Re : RESOLU - explication demandée sur for...

je change de forum !


celui qui ne cherche qu'à s'occuper et c'est tout ce qu'il a trouvé ...

Hors ligne

#6 Le 15/02/2017, à 21:00

charrier63

Re : RESOLU - explication demandée sur for...

https://forum.ubuntu-fr.org/viewtopic.php?id=2005085

Doublon au lieu de deplacer le sujet wink

Hors ligne

#7 Le 15/02/2017, à 21:26

Rufus T. Firefly

Re : RESOLU - explication demandée sur for...

elleji a écrit :

justement , pourquoi les noms de fichier ?

Pourquoi pas ? Comme tu ne dis strictement rien ni sur l'origine du script ni sur son utilité éventuelle, il est difficile de répondre autre chose...


La provocation est une façon de remettre la réalité sur ses pieds. (Bertolt Brecht)
Il n'y a pas de route royale pour la science et ceux-là seulement ont chance d'arriver à ses sommets lumineux qui ne craignent pas de se fatiguer à gravir ses sentiers escarpés. (Karl Marx)
Il est devenu plus facile de penser la fin du monde que la fin du capitalisme

Hors ligne

#8 Le 15/02/2017, à 21:39

Watael

Re : RESOLU - explication demandée sur for...

parce que l'expression *.txt ne correspond à aucun des Développements précédent le Développement des chemins.


Connected \o/
Welcome to sHell. · eval is evil.

Hors ligne

#9 Le 15/02/2017, à 21:39

Hizoka

Re : RESOLU - explication demandée sur for...

*.txt liste les fichiers .txt du dossier courant

la boucle for, va travailler sur les fichiers l'un après l'autre

le nom du fichier utilisé sera contenu dans la variable nommé var

Pour apprendre :
https://doc.ubuntu-fr.org/tutoriel/cons … e_commande
https://doc.ubuntu-fr.org/commande_shell
https://doc.ubuntu-fr.org/tutoriel/cons … es_de_base
http://abs.traduc.org/abs-fr


KDE Neon 64bits
Tous mes softs (MKVExtractorQt, HizoSelect, HizoProgress, Qtesseract, Keneric, Services menus...) sont sur github

Hors ligne

#10 Le 16/02/2017, à 09:05

elleji

Re : RESOLU - explication demandée sur for...

charrier63 a écrit :

https://forum.ubuntu-fr.org/viewtopic.php?id=2005085

Doublon au lieu de deplacer le sujet wink

ben ... comment déplace-t-on ?


celui qui ne cherche qu'à s'occuper et c'est tout ce qu'il a trouvé ...

Hors ligne

#11 Le 16/02/2017, à 09:52

elleji

Re : RESOLU - explication demandée sur for...

Hizoka a écrit :

*.txt liste les fichiers .txt du dossier courant

bonjour,
*.txt ne fonctionne pas !
ls *.txt fonctionne !
...pourquoi ls ?


celui qui ne cherche qu'à s'occuper et c'est tout ce qu'il a trouvé ...

Hors ligne

#12 Le 16/02/2017, à 10:40

Watael

Re : RESOLU - explication demandée sur for...

*.txt ne fonctionne pas !

bah ?! il faut une commande. roll

pourquoi ls ? pourquoi pas printf ?


Connected \o/
Welcome to sHell. · eval is evil.

Hors ligne

#13 Le 16/02/2017, à 11:22

elleji

Re : RESOLU - explication demandée sur for...

pourquoi ls serait déja bien !?


celui qui ne cherche qu'à s'occuper et c'est tout ce qu'il a trouvé ...

Hors ligne

#14 Le 16/02/2017, à 11:36

Watael

Re : RESOLU - explication demandée sur for...

keskidi ?
ls est, la plus part du temps, inutile (ou mal utilisé) dans les scripts.

ce n'est pas ls qui effectue le Développement, c'est le shell,
mais il faut une commande (un contexte) pour que le développement soit réalisé.


Connected \o/
Welcome to sHell. · eval is evil.

Hors ligne

#15 Le 16/02/2017, à 11:39

CM63

Re : RESOLU - explication demandée sur for...

Ca marche aussi bien avec *.txt qu'avec ls *.txt. Si tu le fais avec "ls *.txt" ça va le faire en prenant le résultat de la commande ls , qui peut contenir autre chose que les noms des fichiers, alors que avec "*.txt" il n'y aura que les noms des fichiers


Quoi? Quelque chose que je ne connais pas et qui me fait l'affront d'exister?!

Hors ligne

#16 Le 16/02/2017, à 11:42

CM63

Re : RESOLU - explication demandée sur for...

Pour le faire avec le résultat de la commande, il faut mettre la commande entre parenthèses, précédée de $ :

for var in $(ls *.txt); do echo $var; done

Quoi? Quelque chose que je ne connais pas et qui me fait l'affront d'exister?!

Hors ligne

#17 Le 16/02/2017, à 11:50

elleji

Re : RESOLU - explication demandée sur for...

ok


celui qui ne cherche qu'à s'occuper et c'est tout ce qu'il a trouvé ...

Hors ligne

#18 Le 16/02/2017, à 11:52

pingouinux

Re : RESOLU - explication demandée sur for...

Bonjour,

CM63 #16 a écrit :
for var in $(ls *.txt); do echo $var; done

Ça ne marchera pas si les noms de fichiers contiennent des espaces.

$ touch "aaa   bbb".txt "ccc   ddd".txt

# Mauvaise méthode
$ for var in $(ls *.txt); do echo $var; done
aaa
bbb.txt
ccc
ddd.txt

# Bonne méthode
$ for var in *.txt; do echo "$var"; done
aaa   bbb.txt
ccc   ddd.txt

Hors ligne

#19 Le 16/02/2017, à 13:04

CM63

Re : RESOLU - explication demandée sur for...

pingouinux a écrit :

Ça ne marchera pas si les noms de fichiers contiennent des espaces.

Si, ça marche, mais évidemment on récupéré des mots qui ne correspondent plus aux noms des fichiers, puisque le blanc est séparateur. C'est une des raisons pour lesquelles il est déconseillé de mettre des blancs dans les noms des fichiers, mais bon là je prêche dans le désert, il y en a qui soutiennent qu'on ne peut pas faire autrement... Et c'est à toi le développeur de gérer leur m***rde.


Quoi? Quelque chose que je ne connais pas et qui me fait l'affront d'exister?!

Hors ligne

#20 Le 16/02/2017, à 13:12

Watael

Re : RESOLU - explication demandée sur for...

ça tombe bien, quand même, le shell permet justement, en n'employant pas de substitution de commandes dans une boucle for, de pallier à ce désagrément.

donc, qu'est-ce qui est le plus logique :
s'emmerder à râler parce que les gens nomment leurs fichiers comme ils veulent, ou
utiliser la bonne méthode pour ne pas se soucier du format des noms des fichiers ?

délaisse ls !

Dernière modification par Watael (Le 16/02/2017, à 13:15)


Connected \o/
Welcome to sHell. · eval is evil.

Hors ligne

#21 Le 16/02/2017, à 13:16

Rufus T. Firefly

Re : RESOLU - explication demandée sur for...

CM63 a écrit :
pingouinux a écrit :

Ça ne marchera pas si les noms de fichiers contiennent des espaces.

Si, ça marche, mais évidemment on récupéré des mots qui ne correspondent plus aux noms des fichiers

Donc "ça marche" signifie uniquement qu'il se passe quelque chose et qu'il n'y a pas de message d'erreur...
Comme critère, ça se pose là, je trouve...
En maths, ça donnerait : une équation du second degré du type ax2 + bx + c = 0 devient une équation du premier degré facile à résoudre à condition de faire a = 0. C'est une des raisons pour lesquelles il est déconseillé de mettre une autre valeur pour a, mais bon là je prêche dans le désert... lol

J'ajoute que c'est plutôt à l'informatique (et à bien d'autres choses encore) de s'adapter autant que faire se peut aux usages des hommes que le contraire...

Dernière modification par Rufus T. Firefly (Le 16/02/2017, à 13:30)


La provocation est une façon de remettre la réalité sur ses pieds. (Bertolt Brecht)
Il n'y a pas de route royale pour la science et ceux-là seulement ont chance d'arriver à ses sommets lumineux qui ne craignent pas de se fatiguer à gravir ses sentiers escarpés. (Karl Marx)
Il est devenu plus facile de penser la fin du monde que la fin du capitalisme

Hors ligne

#22 Le 16/02/2017, à 15:43

CM63

Re : RESOLU - explication demandée sur for...

Rufus T. Firefly a écrit :
CM63 a écrit :
pingouinux a écrit :

Ça ne marchera pas si les noms de fichiers contiennent des espaces.

Si, ça marche, mais évidemment on récupéré des mots qui ne correspondent plus aux noms des fichiers

Donc "ça marche" signifie uniquement qu'il se passe quelque chose et qu'il n'y a pas de message d'erreur...

Tout-à-fait, et on est bien en informatique là, et non pas en train d'élaborer la théorie des cordes bosoniques.

Mais bon, tout ce baratin, le créateur du post initial s'en fout un peu, même beaucoup, et il a raison.

Dernière modification par CM63 (Le 16/02/2017, à 15:44)


Quoi? Quelque chose que je ne connais pas et qui me fait l'affront d'exister?!

Hors ligne

#23 Le 16/02/2017, à 16:09

Rufus T. Firefly

Re : RESOLU - explication demandée sur for...

CM63 a écrit :
Rufus T. Firefly a écrit :
CM63 a écrit :

Si, ça marche, mais évidemment on récupéré des mots qui ne correspondent plus aux noms des fichiers

Donc "ça marche" signifie uniquement qu'il se passe quelque chose et qu'il n'y a pas de message d'erreur...

Tout-à-fait, et on est bien en informatique là, et non pas en train d'élaborer la théorie des cordes bosoniques.

Donc un bug qui n'annonce pas la couleur (un message d'erreur) n'est pas un bug.
J'espère que si tu publies des programmes tu signes CM63, histoire qu'on sache à quoi s'en tenir...


La provocation est une façon de remettre la réalité sur ses pieds. (Bertolt Brecht)
Il n'y a pas de route royale pour la science et ceux-là seulement ont chance d'arriver à ses sommets lumineux qui ne craignent pas de se fatiguer à gravir ses sentiers escarpés. (Karl Marx)
Il est devenu plus facile de penser la fin du monde que la fin du capitalisme

Hors ligne

#24 Le 16/02/2017, à 16:21

erresse

Re : RESOLU - explication demandée sur for...

Rufus T. Firefly a écrit :
CM63 a écrit :
Rufus T. Firefly a écrit :

Donc "ça marche" signifie uniquement qu'il se passe quelque chose et qu'il n'y a pas de message d'erreur...

Tout-à-fait, et on est bien en informatique là, et non pas en train d'élaborer la théorie des cordes bosoniques.

Donc un bug qui n'annonce pas la couleur (un message d'erreur) n'est pas un bug.
J'espère que si tu publies des programmes tu signes CM63, histoire qu'on sache à quoi s'en tenir...

"La provocation est une façon de remettre la réalité sur ses pieds. (Bertolt Brecht)"
Un moyen de faire monter la mayonnaise ???
lol


Plus de 50 ans d'informatique, ça en fait des lignes de commandes en console, mais on n'avait pas le choix...
Excellente raison pour, aujourd'hui qu'on le peut, utiliser au maximum les INTERFACES GRAPHIQUES !
Important : Une fois résolu, pensez à clore votre sujet en ajoutant [Résolu] devant le titre du 1er message, et un bref récapitulatif de la solution à la fin de celui-ci. Merci.

Hors ligne

#25 Le 16/02/2017, à 16:53

Rufus T. Firefly

Re : RESOLU - explication demandée sur for...

erresse a écrit :
Rufus T. Firefly a écrit :
CM63 a écrit :

Tout-à-fait, et on est bien en informatique là, et non pas en train d'élaborer la théorie des cordes bosoniques.

Donc un bug qui n'annonce pas la couleur (un message d'erreur) n'est pas un bug.
J'espère que si tu publies des programmes tu signes CM63, histoire qu'on sache à quoi s'en tenir...

"La provocation est une façon de remettre la réalité sur ses pieds. (Bertolt Brecht)"
Un moyen de faire monter la mayonnaise ???
lol

Il n'y a pas de provocation. Mais comment laisser passer une énormité pareille ? "Ça donne un résultat et pas de message d'erreur, donc c'est bon !".
Contre-exemple : http://fr.php.net/manual/fr/migration70 … atible.php

<?php
list($a[], $a[], $a[]) = [1, 2, 3];
var_dump($a);
?>

Résultat de l'exemple ci-dessus en PHP 5 :

array(3) {
  [0]=>
  int(3)
  [1]=>
  int(2)
  [2]=>
  int(1)
}

Résultat de l'exemple ci-dessus en PHP 7 :

array(3) {
  [0]=>
  int(1)
  [1]=>
  int(2)
  [2]=>
  int(3)
}

Mais on s'en tape, puisque dans les 2 cas, ça donne un résultat et pas de message d'erreur ! lol

Dernière modification par Rufus T. Firefly (Le 16/02/2017, à 16:59)


La provocation est une façon de remettre la réalité sur ses pieds. (Bertolt Brecht)
Il n'y a pas de route royale pour la science et ceux-là seulement ont chance d'arriver à ses sommets lumineux qui ne craignent pas de se fatiguer à gravir ses sentiers escarpés. (Karl Marx)
Il est devenu plus facile de penser la fin du monde que la fin du capitalisme

Hors ligne