#1 Le 15/11/2010, à 22:02
- vocal94130
[Résolu] Afficher les droits d'accès
Bonjour,
Je débute en bash et je souhaite afficher le type de fichier passé en paramètre ainsi que ses permissions utilisateurs. J'ai un début de script :
# !/bin/bash
if [ $# = 0 ]
then
echo "Aucun paramètre"
elif [ -f $1 ]
then
echo "C'est un fichier"
if [ ls -la | grep '^-.*' == "-r" ] #Je ne sais pas comment procéder isi
then
echo "droit d'ecriture"
fi
elif [ -d $1 ]
then
echo "C'est un repertoire"
fi
Je pense pas que ce soit compliqué mais j'ai pas encore la logique
Merci de votre aide
Dernière modification par vocal94130 (Le 03/12/2010, à 13:22)
Hors ligne
#2 Le 15/11/2010, à 22:19
- ehmicky
Re : [Résolu] Afficher les droits d'accès
- Tu peux utiliser les tests [[ -r FILE ]] pour tester si l'utilisateur actuel a les droits de lecture. Même chose avec -x et -w pour exécution et écriture.
- Tu devrais utiliser des doubles [[ ]] pour les tests, qui ont plusieurs avantages dont celui de ne pas poser de problème si le chemin de FILE contient des espaces (et qu'il n'est pas entouré de double-guillemets comme c'est le cas ici).
- le = du premier test est le signe de l'affectation : VAR=VAL. Pour faire un test d'égalité, il faut utiliser deux == : if [[ $# == 0 ]]. D'ailleurs, tu peux raccourcir if [[ $# ]] puisque 0 == vrai.
- tu peux quitter le programme s'il n'y a pas d'argument positionnel : exit.
Dernière modification par ehmicky (Le 15/11/2010, à 22:22)
Stego++, bibliothèque libre de stéganographie (avec cryptographie), à venir !
Besoin de votre aide :
Stats sur les compilateurs C++ les plus utilisés
Comment utiliser les archetypes C++ ?
Hors ligne
#3 Le 16/11/2010, à 10:45
- vocal94130
Re : [Résolu] Afficher les droits d'accès
Génial !! Merci de ta réponse rapide et surtout claire.
Hors ligne
#4 Le 20/11/2010, à 12:03
- vocal94130
Re : [Résolu] Afficher les droits d'accès
Les [[ et ]] ne sont pas pris en compte.
[[ : not found
De plus if [ $# ] me fait rentrer dans la boucle quand je mets des paramètres :s
Et if [ $# == 0 ] me donne "unexpected operator"
Erf ça fait pas mal d'erreur tout ça ^^. Tant qu'on y est comment faire pour tester les droit de root et de groupe?
Merci de votre aide
Dernière modification par vocal94130 (Le 20/11/2010, à 12:04)
Hors ligne
#5 Le 20/11/2010, à 18:49
- FRUiT
Re : [Résolu] Afficher les droits d'accès
Il y a pas d'espace dans le shabang
#!/bin/bash
C'est surement pour ça que les double crochets ne marchent pas.
Neon Suite by FRUiT (kde4.6) [url]http://[Merci de relire les règles]/yzm7cee[/url]
"Pour la carotte, le lapin est la plus parfaite incarnation du mal" (R. Sheckley)
clean
Hors ligne
#6 Le 20/11/2010, à 21:32
- ehmicky
Re : [Résolu] Afficher les droits d'accès
Oui, ce que j'ai dit est pour Bash pas Sh
Par ailleurs, je voulais dire if (( ! $# )), mais tu peux utiliser if [[ $# == 0 ]] si tu veux.
Dernière modification par ehmicky (Le 20/11/2010, à 21:32)
Stego++, bibliothèque libre de stéganographie (avec cryptographie), à venir !
Besoin de votre aide :
Stats sur les compilateurs C++ les plus utilisés
Comment utiliser les archetypes C++ ?
Hors ligne
#7 Le 21/11/2010, à 17:28
- vocal94130
Re : [Résolu] Afficher les droits d'accès
Euhh moi c'est sh alors non ? puisque j'utilise 'sh nom_fichier' pour lancer mon script.
Hors ligne
#8 Le 21/11/2010, à 20:24
- ehmicky
Re : [Résolu] Afficher les droits d'accès
Bah utilise Bash : ./script
Stego++, bibliothèque libre de stéganographie (avec cryptographie), à venir !
Besoin de votre aide :
Stats sur les compilateurs C++ les plus utilisés
Comment utiliser les archetypes C++ ?
Hors ligne
#9 Le 03/12/2010, à 13:22
- vocal94130
Re : [Résolu] Afficher les droits d'accès
Euh oui effectivement !
Merci
Hors ligne