Aidez moi svp programmation shell
Fermé
jocker132
Messages postés
14
Date d'inscription
mercredi 14 septembre 2005
Statut
Membre
Dernière intervention
7 janvier 2009
-
5 juin 2008 à 18:23
mamiemando Messages postés 33372 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 22 novembre 2024 - 6 juin 2008 à 01:26
mamiemando Messages postés 33372 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 22 novembre 2024 - 6 juin 2008 à 01:26
A voir également:
- Aidez moi svp programmation shell
- Classic shell windows 11 - Télécharger - Personnalisation
- Application de programmation - Guide
- Top44rbn programmation - Forum Programmation
- Classic shell c'est quoi ✓ - Forum Windows 10
8 réponses
mamiemando
Messages postés
33372
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
22 novembre 2024
7 802
5 juin 2008 à 18:40
5 juin 2008 à 18:40
Normalement tu as vu en cours
- comment faire des tests en shell (avec if ).
- comment récupérer le résultat d'une commande avec ` `
- comment définir une variable (opérateur =) et en récupérer le contennu (opérateur $)
- comment faire une boucle for
- comment composer des commandes (en gros, en maths on écrit "f o g (x)" et en bash on écrit "x | g | f ") et la barre | s'appelle pipe (se prononce païpe pour éviter toute allusion graveleuse)
S'il te manque ces pré-requis regarde un tutoriel sur bash en cherchant sur google.
Ensuite il suffit d'utiliser les bonnes commandes en particulier grep, cut et ls. Je te donne le début et je te laisse finir pour que tu vois comment démarrer :
Pour comprendre le rôle des instructions shell que j'ai utilisé :
Tu peux aussi décomposer le mouvement en tapant dans ta console :
Et si par exemple dans ton répertoire il y a un fichier plop.txt :
Bonne chance
- comment faire des tests en shell (avec if ).
- comment récupérer le résultat d'une commande avec ` `
- comment définir une variable (opérateur =) et en récupérer le contennu (opérateur $)
- comment faire une boucle for
- comment composer des commandes (en gros, en maths on écrit "f o g (x)" et en bash on écrit "x | g | f ") et la barre | s'appelle pipe (se prononce païpe pour éviter toute allusion graveleuse)
S'il te manque ces pré-requis regarde un tutoriel sur bash en cherchant sur google.
Ensuite il suffit d'utiliser les bonnes commandes en particulier grep, cut et ls. Je te donne le début et je te laisse finir pour que tu vois comment démarrer :
#!/bin/sh for fichier in `ls -1 | grep -v "^total" | xargs` do droits="`ls -l $fichier | cut -f1 -d' '`" echo "$fichier a les droits $droits" done
Pour comprendre le rôle des instructions shell que j'ai utilisé :
man ls man grep man xargs man cut
Tu peux aussi décomposer le mouvement en tapant dans ta console :
ls -1 ls -1 | grep -v "^total" ls -1 | grep -v "^total" | xargs
Et si par exemple dans ton répertoire il y a un fichier plop.txt :
ls -l plop.txt ls -l $fichier | cut -f1 -d' '
Bonne chance
jocker132
Messages postés
14
Date d'inscription
mercredi 14 septembre 2005
Statut
Membre
Dernière intervention
7 janvier 2009
5 juin 2008 à 18:55
5 juin 2008 à 18:55
merci pour ton aide
Cependant il se trouve que je suis archinul en programmation linux.
On a un prof peu competent du coup je sais presque rien dans cette matiere.
Donc stp si ça ne te derange pas ça serait vraiement bien si tu peux poster la reponse entiere .
Merci d'avance et désolé pour le dérangement.
Cependant il se trouve que je suis archinul en programmation linux.
On a un prof peu competent du coup je sais presque rien dans cette matiere.
Donc stp si ça ne te derange pas ça serait vraiement bien si tu peux poster la reponse entiere .
Merci d'avance et désolé pour le dérangement.
mamiemando
Messages postés
33372
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
22 novembre 2024
7 802
5 juin 2008 à 19:01
5 juin 2008 à 19:01
Comment te dire...
- Que tu sois nul en programmation... ben j'y peux rien, moi j'essaye de te débloquer quel que soit ton niveau.
- Que ton prof soit nul... j'y peux rien non plus.
- Même si c'est vrai, il y a d'autres gens à qui tu peux demander (les autres profs, élèves etc...), ce sera même l'occasion de faire de rencontrer des gens.
- Et accessoirement comment veux-tu que je fasse la différence entre un étudiant qui est bloqué ou qui a la flemme ?
Donc ce que je te demande c'est de prendre le temps de comprendre ce que j'ai écrit car le plus dur est fait. Normalement si tu sais faire un if et que tu regardes le man de la commande chmod ça doit bien taper dans les 5 lignes à rajouter.
Bonne chance
- Que tu sois nul en programmation... ben j'y peux rien, moi j'essaye de te débloquer quel que soit ton niveau.
- Que ton prof soit nul... j'y peux rien non plus.
- Même si c'est vrai, il y a d'autres gens à qui tu peux demander (les autres profs, élèves etc...), ce sera même l'occasion de faire de rencontrer des gens.
- Et accessoirement comment veux-tu que je fasse la différence entre un étudiant qui est bloqué ou qui a la flemme ?
Donc ce que je te demande c'est de prendre le temps de comprendre ce que j'ai écrit car le plus dur est fait. Normalement si tu sais faire un if et que tu regardes le man de la commande chmod ça doit bien taper dans les 5 lignes à rajouter.
Bonne chance
jocker132
Messages postés
14
Date d'inscription
mercredi 14 septembre 2005
Statut
Membre
Dernière intervention
7 janvier 2009
5 juin 2008 à 19:15
5 juin 2008 à 19:15
est-ce que cette solution est juste ?
#!/bin/sh
for fichier in `ls -1 | grep -v "^total" | xargs`
do
droits="`ls -l $fichier | cut -f1 -d' '`"
echo "$fichier a les droits $droits"
if -type $fichier = f then
chmod +r $fichier
elseif -type $fichier = d
chmod +x $fichier
else chmod +rwx $fichier
fi
done
#!/bin/sh
for fichier in `ls -1 | grep -v "^total" | xargs`
do
droits="`ls -l $fichier | cut -f1 -d' '`"
echo "$fichier a les droits $droits"
if -type $fichier = f then
chmod +r $fichier
elseif -type $fichier = d
chmod +x $fichier
else chmod +rwx $fichier
fi
done
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
adi3000
Messages postés
254
Date d'inscription
samedi 5 août 2006
Statut
Membre
Dernière intervention
22 mai 2011
54
5 juin 2008 à 19:20
5 juin 2008 à 19:20
je fini opur conclure 3 commande qui te donneron la reponse
chmod +x //+w+r ou -x -w -r pour modifier les droit suivit du fichier
man test // page du manuel regroupant les commande test suivis apres le if dont celle du savoir si c'est un fichier ordinaire
man chmod //pour mieux comprendre la modification des droits
et aussi au fait les parametre d'une commande shell s'introduit par
$1, $2, $3 (selon le numero du parametre
$* est la liste entiere du paramètre (utile pour un "for i in $*")
$0 est le nom du programme shell
$# est le nombre de parametre entré au total
je precise que par parametre j'entend ce qu'on entre apres genre
login@localhost$ sh command.sh param1 param2 param3
bref avec tout ça en theorie tu devrais t'en sortir
chmod +x //+w+r ou -x -w -r pour modifier les droit suivit du fichier
man test // page du manuel regroupant les commande test suivis apres le if dont celle du savoir si c'est un fichier ordinaire
man chmod //pour mieux comprendre la modification des droits
et aussi au fait les parametre d'une commande shell s'introduit par
$1, $2, $3 (selon le numero du parametre
$* est la liste entiere du paramètre (utile pour un "for i in $*")
$0 est le nom du programme shell
$# est le nombre de parametre entré au total
je precise que par parametre j'entend ce qu'on entre apres genre
login@localhost$ sh command.sh param1 param2 param3
bref avec tout ça en theorie tu devrais t'en sortir
jocker132
Messages postés
14
Date d'inscription
mercredi 14 septembre 2005
Statut
Membre
Dernière intervention
7 janvier 2009
5 juin 2008 à 19:31
5 juin 2008 à 19:31
Vous n'allez pas me croire mais j'y arrive pas :s
jocker132
Messages postés
14
Date d'inscription
mercredi 14 septembre 2005
Statut
Membre
Dernière intervention
7 janvier 2009
5 juin 2008 à 20:05
5 juin 2008 à 20:05
Personne pour m'aider svp ?
mamiemando
Messages postés
33372
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
22 novembre 2024
7 802
6 juin 2008 à 01:26
6 juin 2008 à 01:26
Ca t'irait ça ?
Pour avoir un chance ça suppose bien sûr de lire la doc :
Tu peux aussi décomposer le mouvement :
Bonne chance
find public_html -type d -execdir pwd \; | sort | uniq | xargs chmod 777
Pour avoir un chance ça suppose bien sûr de lire la doc :
man find man pwd man sort man uniq man xargs man chmod
Tu peux aussi décomposer le mouvement :
find public_html -type d -execdir pwd \; find public_html -type d -execdir pwd \; | sort find public_html -type d -execdir pwd \; | sort | uniq find public_html -type d -execdir pwd \; | sort | uniq | xargs chmod 777
Bonne chance