Bonsoir;
y a t il quelqu'un qui pourrait m'aider à résoudre cet exercice
The weather.sh utility in the current working directory provides weather forecasts in your area. When called, it outputs a 4-day forecast in the format "day: weather" separated by line breaks.
Write a bash script that outputs the number of days with a "Thunderstorm" forecast (case- sensitive).
# facile
Posté par Krunch (site web personnel) . Évalué à 10.
Oui, c'est très facile. Pour commencer il te faut un système d'exploitation. Je te suggère LFS, c'est le mieux pour apprendre : https://www.linuxfromscratch.org/lfs/download.html
Une fois que tu aura installé LFS tu devrais avoir acquis les connaissances nécessaires pour résoudre le problème.
Joyeux amusement.
pertinent adj. Approprié : qui se rapporte exactement à ce dont il est question.
[^] # Re: facile
Posté par shella . Évalué à 1. Dernière modification le 02 juillet 2024 à 07:19.
je vous remercie énormément, pour le lFS je le suis pas à pas pour construire ma propre distribution, main ici je vais passer un test dans 2 jours, et j'ai trouvé cet exercice qui est classé comme difficile.
j'ai réussi à le resoude de 33% (le score à la fin) :
mais je ne sais pas pourquoi il n'est pas juste à 100%, ça fait des jours de tentatives de résolution, mais aucune autre idée
[^] # Re: facile
Posté par NeoX . Évalué à 6.
le debug du pauvre, affiche le resultat de ton "thunderstorm_count"
ainsi tu sauras ce qu'il y a dedans, ensuite regarde tes conditions…
accessoirement fait toi un jeu de test ou tu maitrises l'entrée (ex un fichier ressemblant à la sortie de weather.sh, mais qui t'appartient et que tu peux modifier librement
ainsi tu testes avec toujours le meme fichier pour etre sur d'avoir la meme entrée, et donc logiquement la meme sortie
[^] # Re: facile
Posté par Marotte ⛧ . Évalué à 3.
Pour les tests. Qu’on me corrige si je me trompe, mais tu as intérêt à systématiquement utiliser
[[
au lieu de[
, car[[
est un keyword et non un builtin comme est[
.Le comportement est plus logique, plus prévisible, « moins possiblement chelou » oserais-je.
https://askubuntu.com/questions/445749/whats-the-difference-between-shell-builtin-and-shell-keyword
Donc autant écrire :
if [[ $thunderstorm_count -eq 0 ]]
. Même si ici ça revient au même, il n’y a aucun intérêt à utiliser[
, donc autant prendre cette habitude.# Voir aussi
Posté par Ysabeau 🧶 (site web personnel, Mastodon) . Évalué à 5. Dernière modification le 01 juillet 2024 à 21:47.
Ceete page du wiki notamment le paragraphe : "Aidez-moi à faire cet exercice, c'est pour hier !".
« Tak ne veut pas quʼon pense à lui, il veut quʼon pense », Terry Pratchett, Déraillé.
[^] # Re: Voir aussi
Posté par shella . Évalué à 1.
merci, mais ici ça fait des jours que je stagne sur cet exercice, peu de gens ont pu résoudre cet exercice et je tente ma chance si kelk un parmi eux passe par là
[^] # Re: Voir aussi
Posté par Marotte ⛧ . Évalué à 3.
Alors ? T’as réussi à briller, ou au moins à faire illusion ? Ou bien tu t’es pris des coups de règle sur les doigts et tu as été condamné à recopier des pages de manuel ? ;)
# Consigne
Posté par cg . Évalué à 2.
Une idée comme ça… la consigne est :
Et non pas :
[^] # Re: Consigne
Posté par shella . Évalué à 1. Dernière modification le 01 juillet 2024 à 23:26.
merci pour votre réponse mais je n'ai pas compris votre raisonnement
else
echo "Number of days with Thunderstorm forecast: $thunderstorm_count"
traite les autres cas
[^] # Re: Consigne
Posté par cg . Évalué à 7. Dernière modification le 01 juillet 2024 à 23:46.
C'est bien plus simple : il faut afficher le nombre de fois qu'on trouve Thunderstorm. C'est tout. Rien d'autre. Juste un nombre. Pas des phrases. J'ai pu vérifier en faisant le test est j'ai eu 100% (nananère).
Pourquoi est-ce important de suivre la consigne ? Parce qu'en programmation, on défini des formats, des interfaces, des types de données, pour pouvoir les traiter et faire des opérations avec sans surprise.
Imagine que tu fais un truc qui compte les carottes dans ton garde-manger, et qui détermine combien de carottes tu dois acheter pour en avoir 10 :
Si
carottes_dans_le_garde_manger
vautaucune
au lieu de0
, ben ta soustraction ne va pas fonctionner, ton programme va planter et tu vas crever de faim.Donc simplifie ton programme et croque une carotte :).
[^] # Re: Consigne
Posté par shella . Évalué à 2.
merci énormément pour votre réponse mais j'ai essayé toute la première fois d'afficher seulement la variable $thunderstorm_count, c'est pour cette raison que j'ai fait plusieurs modifications pour résoudre la question à 100%
il m'affiche que le script ne marche pas en cas
* The forecast contains no thunderstorms: Wrong answer
*The forecast contains some thunderstorms: Wrong answer
alors que j'ai essayé mon script sur plusieurs cas, en cas de 0 ou plusieurs jours de thunderstorm et il fonctionne très bien, mais toujours j'obtiens un score de 33%
[^] # Re: Consigne
Posté par BAud (site web personnel) . Évalué à 2. Dernière modification le 02 juillet 2024 à 00:20.
pourquoi se compliquer la vie ? c'est un one-liner trivial
il faut simplement sortir le chiffre obtenu… et hop, 100%
[^] # Re: Consigne
Posté par shella . Évalué à 1.
merci pour vous, enfin j'ai eu 100%
[^] # Re: Consigne
Posté par cg . Évalué à 3.
Oui, sauf que sur le site de test…
Ce programme fonctionne :
Et celui-ci ne fonctionne pas, mais fonctionne bien sur ma machine :
Du coup je pense que shella a buté sur un bête bug du site de test. Pas cool.
Bon courage pour la suite !
[^] # Re: Consigne
Posté par BAud (site web personnel) . Évalué à 4. Dernière modification le 02 juillet 2024 à 00:45.
bin faire exécuter le contenu d'une variable c'est toujours casse-gueule à échapper selon que c'est utilisé directement dans le shell en ligne de commande, exécuté dans un script shell ou appelé par un autre script shell ou encore dans le cron… tu passes ton temps à mettre des
\
de partout :/[^] # Re: Consigne
Posté par shella . Évalué à 1.
Encore une fois, merci du fond du cœur.
Avec toute ma gratitude
[^] # Re: Consigne
Posté par BAud (site web personnel) . Évalué à 3.
boah, la prochaine fois, indique testdome tout de même et entraîne-toi à citer du code en Markdown comme indiqué sur le wiki aide-édition code — même si la modération est passée par là pour éditer ton commentaire ;-)
d'ailleurs, si tu as envie de lister les plateformes sur lesquelles tu t'entraînes, ce sera la bienvenue :p (même si cg< a été capable de le retrouver…) ; tu peux les lister à la fin de ton entrée de forum (que tu peux éditer).
[^] # Re: Consigne
Posté par shella . Évalué à 1.
je vous remercie pour votre temps et votre empathie
[^] # Re: Consigne
Posté par cg . Évalué à 2.
Tiens, ça fait plusieurs fois que je vois des noms d'utilisateurs suivi d'un
<
, ça me rend curieux. Je comprend que c'est l'équivalent du @ utilisé sur Mastodon, mais sur Linuxfr, ça sert à quoi ?[^] # Re: Consigne
Posté par Krunch (site web personnel) . Évalué à 2.
J'imagine que certains clients de tribune reconnaissent cette syntaxe https://linuxfr.org/wiki/tribune
pertinent adj. Approprié : qui se rapporte exactement à ce dont il est question.
[^] # Re: Consigne
Posté par BAud (site web personnel) . Évalué à 3.
c'est le @ qui est l'équivalent du bec du canard \_o< qu'on rencontre pas mal sur IRC, permettant de faire allusion à quelqu'un ;-)
ça ne sert à rien, donc totalement indispensable ! :p
[^] # Re: Consigne
Posté par Krunch (site web personnel) . Évalué à 3.
{{référence nécessaire}}
Je suis sur IRC depuis des dizaines d'années et je n'ai vu cette utilisation que sur la tribune.
pertinent adj. Approprié : qui se rapporte exactement à ce dont il est question.
[^] # Re: Consigne
Posté par BAud (site web personnel) . Évalué à 2.
pan ! pan !
(nope, ce n'est pas que sur la 3bune : comment crois-tu que ça y est arrivé ?)
[^] # Re: Consigne
Posté par Marotte ⛧ . Évalué à 3.
J’y étais il y a des dizaines d’années pour ma part (sur IRC) et je n’ai pas souvenir du
<
final pour signifier un nickname/pseudo/personne, mais bien le@
, qui entre nous est nettement plus logique. Le<
final c’est quand même pas très évident.Si je m’identifie à une moule plus qu’à un canard, puis-je exiger qu’on userait le cas échéant d’un
(
final à la place ? Je crois que le symbole n’est pas réservé en tant que suffixe à un nom. Je vais initier une RFC avant qu’Elon Musk ou Bill Gates s’en empare !L’IRC… c’est comme Usenet, ça fait plaisir de voir que ça existe toujours, faudrait que j’y refasse un tour un de ces quatre. Ça ne m’étonne pas de voir qu’aujourd’hui encore des gens (ils sont pas des masses quand même àmha…) privilégient ce genre de protocol, pour ses qualités, et malgré ses défauts.
Je dis p-e une connerie mais IRC subsiste davantage qu’ICQ qui prétendait pourtant a être un avantageux remplaçant de l’archaïque IRC, non ?
[^] # Re: Consigne
Posté par Krunch (site web personnel) . Évalué à 3. Dernière modification le 08 août 2024 à 05:45.
Traditionnellement le @ sur IRC est un préfixe indiquant un status spécial visible dans le liste des participants mais on ne l'utilise pas lorsque l'on interpelle quelqu'un. Dans les clients IRCs que j'ai utilisé, on a autocomplete et un système de « highlight » lorsque son propre nom est mentionné sans avoir besoin de préfixe (souvent on a un « : » entre le nom du destinataire et le message).
ICQ était entièrement contrôlé par une société privée. IRC est un protocole ouvert. Un des deux est beaucoup plus facile à éradiquer que l'autre.
pertinent adj. Approprié : qui se rapporte exactement à ce dont il est question.
[^] # Re: Consigne
Posté par Benoît Sibaud (site web personnel) . Évalué à 4.
Je ne sais pas trancher si c'est une connerie ou pas, mais on est en août et de fait c'est vrai, faute de concurrence, IRC gagne ce match.
https://linuxfr.org/users/devnewton/journaux/icq-sera-bronsonise-fin-juin
[^] # Re: Consigne
Posté par Marotte ⛧ . Évalué à 4.
C’est la substitution de commande (ie:
$(command)
) que tu désignes ainsi ?Perso ça m’évoque plus un recours au builtin
eval
cette formulation.De mon expérience, sur l’échappement :
Un
\
ça va, c’est souvent même très utile et élégant.Deux
\\
, il y a un forte probabilité qu’il existe un meilleur moyen de faire ce que tu souhaites.Trois
\\\
, le code est mauvais, il est crucial de prendre un peu de repos, puis le temps de la réflexion pour récrire toute la partie du code concernée.J’en profite pour évoquer quelque chose que j’ai appris trop tard dans mon apprentissage du shell, Bash en l’occurrence. Je ne sais pas pour KSH, ZSH ou la norme POSIX, mais je pense qu’il existe de semblables subtilités.
Il n’y a pas moins de 4 façons de valoriser une variable « scalaire » (ie: hors tableau et nameref), et pour lesquelles le caractère anti-slash, entre autre, n’a pas le même comportement :
Le manuel vous l’expliquera assurément mieux que moi ! ^^
[^] # Re: Consigne
Posté par Marotte ⛧ . Évalué à 4. Dernière modification le 08 août 2024 à 04:38.
Tu me rappelles une leçon que j’ai eu la chance de recevoir, concernant le respect des consignes.
On donne une feuille aux élèves en leur disant qu’il s’agit de l’exercice à faire, qu’ils ont X minutes pour le remplir. La consigne écrite en haut de la feuille indique de « lire l’ensemble des questions, puis de répondre ». Je crois qu’à peu prêt 100% des sujets commence à lire la première question, commence à y réfléchir et y répondre (moi le premier). Le fait est que répondre à toute les questions, aussi peu complexes qu’elles soient, est impossible dans le temps imparti. Or à la fin des questions, au bas du verso de la feuille, il est écrit : « Répondez seulement aux questions 1, 3 et 5 et rendez votre copie. »
C’est évidemment volontairement caricatural, mais pour ma part je trouve que c’est un des enseignement fondamental que j’ai eu la chance de recevoir. À quelque chose comme 25 ans, alors que ce réflexe, de “read all the fucking instructions first, before acting” ça devrait être assimilé dès le CP… (Bon, p-e qu’on avait essayé de me l’inculquer déjà à cette époque et que j’ai loupé le coche, mais franchement, si c’est le cas on a pas dû essayer très fort ! ^^)
Dans la même veine il y a un exercice sur « comment négocier avec un concurrent », et bien là aussi la clé pour réussir cet exercice c’est que les deux équipes qui se font concurrence lisent très précisément chaque mot du mandat qu’on leur a confié.
# man grep
Posté par steph1978 . Évalué à 2.
.
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.