|
Publicité | ||||||||||||||||||||||
|
|
#1 |
|
Invité de passage
![]() jean-philippe Inscription : février 2010 Messages : 7 ![]() |
Salut à tous,
Je débute sur les commandes bash et les scripts shell, c'est pourquoi je fait des sujets de TP que j'ai trouver sur le net. N'ayant pas les corrections, je suis bloqué sur 3 programmes. Il faut écrire un programme nommé nbDir en shell qui calcule et imprime sur la sortie standard le nombre de répertoires d’un répertoire passé en paramètre sans utiliser d’option particulière du ls. j'ai donc essayer avec le find : find ~/Bureau -type d | wc -l Mais cette commande compte aussi le nombre de sous-dossiers dans les dossiers. (pour info j'ai mis ~/Bureau pour tester ce répertoire, néanmoins la demande est de tester le dossier mis en paramètre) Concernant le calcul de la moyenne, je suis à sec... – Ecrire le script Shell moyenne qui calcule la moyenne des nombres passés en paramètre. – Ecrire le script Shell moyenne qui calcule la moyenne des nombres contenu dans un fichier dont le nom est passé en paramètre. Merci d'avance de toutes vos réponses. |
|
|
00
|
|
|
#2 |
|
Nouveau Membre du Club
![]() David Inscription : avril 2009 Messages : 26 ![]() |
Bonjour sleepers56,
Pour ton premier programme, tu peux utiliser file |
|
|
00
|
|
|
#3 |
|
Membre expérimenté
![]() |
Tu peux bien sûr limiter la profondeur de la recherche de find : (Tu remarqueras que . est listé par find et donc comptabilisé comme un répertoire).
Tu peux aussi lister les répertoires, un par ligne, avec ls, en limitant l'affichage à ceux qui finissent par / :Zsh permet de filtrer entre répertoires et fichiers, par exemple ls -l *(.) liste seulement les fichiers. |
|
|
00
|
|
|
#4 |
|
Expert Confirmé
![]() Inscription : février 2008 Messages : 1 896 ![]() |
Oui, mais tout ça n'est pas du bash, c'est du shell !
Ça, c'est du Code bash :
for dir in ~/*; do if [ -d "$dir" ]; then ((cpt++)); fi; done; echo "Il y a $cpt répertoire dans" ~ |
|
|
00
|
|
|
#5 |
|
Invité de passage
![]() jean-philippe Inscription : février 2010 Messages : 7 ![]() |
Premièrement Merci beaucoup à vous tous pour vos propositions, j'apprécie beaucoup votre aide
![]() J'ai testé vos différentes propositions : - syjis file $1/* | grep directory | wc -l Ce script me donne le même résultat que find ~/Bureau -type d | wc -l, c'est à dire qu'il compte bien les dossiers, mais pas ceux qui contiennent d'autre dossiers. -iblis - find . -type d -maxdepth 1 | wc -l Cette commande semble convenir à 100% je teste sur différents dossiers et tout semble OK. - ls -d1 */ | wc -l Cela fonctionne aussi sauf que je ne peut mettre le répertoire à analyser en paramètre. Donc MERCI encore pour vos réponses, mon 1er problème est résolu |
|
|
00
|
|
|
#6 | |
![]() ![]() Idriss NeumannDéveloppeur en SSII et étudiant au CNAM Paris (ingénieur SI) Inscription : février 2009 Messages : 1 704 ![]() |
Salut.
Citation:
Je te laisses y faire un tour et y réfléchir, et revient si tu as des questions Cordialement, Idriss
__________________
modérateur rubriques Linux/Unix et chat
Dernière modification par ok.Idriss ; 04/02/2010 à 22h03. Motif: orthographe |
|
|
|
00
|
|
|
#7 | ||
|
Invité de passage
![]() jean-philippe Inscription : février 2010 Messages : 7 ![]() |
Concernant mon calcul de moyenne j'ai fait ceci :
J'ai mis des commentaires j'espère ne pas avoir surchargé mon post Code :
- J'ai peut être rendu complexe ma solution, avez vous des améliorations à me proposer? Dernière modification par al1_24 ; 07/02/2010 à 20h03. |
||
|
|
00
|
|
|
#8 |
![]() ![]() Idriss NeumannDéveloppeur en SSII et étudiant au CNAM Paris (ingénieur SI) Inscription : février 2009 Messages : 1 704 ![]() |
Salut,.
Tu peut par exemple remplacer cette ligne : par cette ligne : Bash n'est pas fait pour faire des calculs et ne gère pas les nombres à virgule, il faut donc faire appel à un programme externe comme bc. Sinon n'oublies pas les balises codes (symbôle # quand tu poste), pour une meilleur présentation de ton code. Cordialement, Idriss.
__________________
modérateur rubriques Linux/Unix et chat
|
|
|
00
|
|
|
#9 | |
|
Invité de passage
![]() jean-philippe Inscription : février 2010 Messages : 7 ![]() |
Citation:
Et comment modifier le script pour qu'il accepte les nombres à virgules dans le calcul? |
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com