Faire un script shell qui prend en paramètres

[Fermé]
Signaler
Messages postés
2
Date d'inscription
samedi 26 février 2011
Statut
Membre
Dernière intervention
3 juin 2011
-
Messages postés
927
Date d'inscription
mercredi 11 août 2004
Statut
Membre
Dernière intervention
12 novembre 2020
-
Bonjour,

Faire un script shell qui prend en paramètres le nom
du répertoire (Rep) et le nombre de sous répertoires

j'arrive pas a comprendre le question !!

5 réponses

Messages postés
41
Date d'inscription
jeudi 16 février 2017
Statut
Membre
Dernière intervention
29 septembre 2018
15
paramètre 1 --> variable $1
paramètre 2 --> variable $2

./monscript.sh param1 param2

dans le script tu dis
repertoire=$1
nbsousrepertoire=$2
Messages postés
1027
Date d'inscription
mercredi 23 janvier 2008
Statut
Membre
Dernière intervention
17 février 2017
138
salut
pour moi ca veut dire ca :
tu fais un programme machin.sh
ton programme sera exécuté en tapant machin.sh /opt/blahblah 5

mais ca semble un peu bête
alors je verrais plutot cette interprétation :
tu fais un programme machin.sh
ton programme sera exécuté en tapant
machin.sh $(pwd) $(find . -maxdepth 1  -type d |wc -l )

autrment dit : exécute le prorgamme machin.sh avec le répertoire en paramètre 1 et le nombre de sous-répertories en paramètre 2

en fait le paramètre 2 devrait enlevr le répertorie courant "."
Messages postés
1027
Date d'inscription
mercredi 23 janvier 2008
Statut
Membre
Dernière intervention
17 février 2017
138
donc,

machin.sh $(pwd) $(find . -maxdepth 1 -type d | grep '/'  |wc -l )



évidemment find permet de virer "." mais je ne sais plus comment

et comme disait eddy :
dans le script tu dis
repertoire=$1
nbsousrepertoire=$2
Faire un script shell qui prend en paramètres le nom
du répertoire (Rep) et le nombre de sous répertoires


Oui... je ne comprends pas non plus

du répertoire donc un répertoire particulier ? et que veut dire ce (Rep) ?

Et prendre des paramètres ok mais pour en faire quoi ? Ça n'a pas de sens sinon
Messages postés
927
Date d'inscription
mercredi 11 août 2004
Statut
Membre
Dernière intervention
12 novembre 2020
297
Bonjour,

En deux lignes, à condition d'être déjà dans le répertoire concerné :
Si vous voulez récupérer le nom du répertoire courant :
basename $(pwd)

Pour le nombre de répertoires :
pwd | grep -o \/ | wc -l


grep -o va chercher toutes les occurence du caractère / (échappé avec \)
et en afficher un par ligne.

Si vous êtes dans /usr/local/scripts par exemple...
Le résultat sera "3"

En réalité, je n'ai pas compté les répertoires, mais les "/" c'est un biais, mais toujours est-il que çà fonctionne.

Quand au fainéant qui veut qu'on fasse ses devoirs à sa place, il faut qu'il comprenne bien que s'il est une buse et ne comprend pas la question, il vaut mieux qu'il change de voie. S'il ne comprend pas la question, c'est au prof qu'il faut demander, pas à commentcamarche.net.


Bonne journée.