Une histoire "pipe" [SHELL] - Shell/Batch - Programmation
Marsh Posté le 10-12-2009 à 10:48:36
le pipe est clairement pas ce qu'il te faut.
par contre tu peux faire un for:
Code :
|
mais effectivement ca serait plus sexy en créant une option -a ou --all dans ton script et y faire le for.
Marsh Posté le 10-12-2009 à 14:22:33
hey merci , je teste ca dessuite
Tiens puisque tu parles de "--all", je cherchais justement à faire des options à plusieurs lettre, avec la méthode que j'utilise chaque lettre serait une option propre. J'imagine que c'est une question de syntaxe. Si quelqu'un peut me souffler la syntaxe correcte ?
Pour ma part je fais :
#!/bin/bash |
Je voulais une option "?" mais ça ne fonctionne pas, et dans l'idée pour certaines options, j'aurais voulu mettre des mots , genre --user plutôt que -u, voir laisser les 2 possibilités.
Oui je sais, google est mon amis, mais si une âme généreuse se sent de me dire comment on fait
Marsh Posté le 10-12-2009 à 14:49:48
pataluc a écrit : le pipe est clairement pas ce qu'il te faut.
|
Surement une question de syntaxe, mais lorsque je fais : for u in 'ls /home'; do echo $u ; done
Le résultat c'est "ls /home" et non pas le résultat de la commande en question
Edit : résolu en faisant :
Code :
|
Marsh Posté le 10-12-2009 à 15:27:42
sinon, regarde du coté de getopt au lieu de getopts, je crois qu'il gère les options longues.
Marsh Posté le 10-12-2009 à 15:37:04
pataluc a écrit : sinon, regarde du coté de getopt au lieu de getopts, je crois qu'il gère les options longues. |
Si ça intéresse quelqu'un un script qui filtre un peu les logs ssh par user ou provenance (lan / exterieur), je veux bien le poster, même si bon ca n'a rien d'extraordinaire.
Marsh Posté le 10-12-2009 à 22:53:49
tuxbleu a écrit : |
Parce que c'est avec des ` et pas des ' je pense.
Marsh Posté le 10-12-2009 à 22:58:43
fhr a écrit : |
oh ah ben merde alors ! je vais essayer ça demain matin !
Marsh Posté le 11-12-2009 à 10:02:27
Oui, les ' ' c'est pour fixer du texte, les ` ` c'est pour demander l'exécution d'une commande.
Marsh Posté le 11-12-2009 à 10:18:11
tuxerman12 a écrit : Oui, les ' ' c'est pour fixer du texte, les ` ` c'est pour demander l'exécution d'une commande. |
En effet, ça marche bien mieux, j'avais trouvé un subterfuge, mais là c'est impeccable.
Marsh Posté le 06-01-2010 à 16:12:38
ReplyMarsh Posté le 06-01-2010 à 17:48:06
art_dupond a écrit : ou un truc du genre |
oh ?
intéressant à essayer
Marsh Posté le 10-12-2009 à 10:27:19
Bonjour
Beaucoup trop compliqué à synthétiser dans un titre.
J'imagine que je suis pas le premier à essayer de faire ça, mais peut-etre que je me trompe de voie pour faire ce que j'aimerai faire :
J'ai un programme que j'ai écris ( ) qui me permet de checker dans mes logs qui sont dans /var/log/auth ce qui concerne les connexions ssh de mes utilisateurs. Lequel programme peut utiliser différents paramètres, dont " -u " pour lequel je peux spécifier l'utilisateur qui m'intéresse. Appliqué tel quel, j'ai un affichage à l'écran des logs concernés
Exemple :
./log_ssh -u tuxbleu
m'affiche les log de tuxbleu, et si je veux me stocker ca dans un fichier texte, je fais vulgairement
./log_ssh -u tuxbleu > tuxbleu.txt
Bon, magnifique. Mon idée maintenant, c'est de lancer ce programme pour tous mes users, sans les lister à la main un par un, et pour chaque user envoyer le résultat dans un fichier user.txt
Je me dis que la liste de mes users, c'est plus ou moins la liste des répertoires présents dans /home.
Donc j'aimerais passer en paramètre "-u" à ma fonction log_ssh la liste résultat de " ls /home/ "
un truc genre :
ls /home/ | ./log_ssh -u
Si vous voyez l'idée
Ptet que le pipe c'est pas la bonne solution, et que je devrais insérer dans mon programme log_ssh un "for rep in /home loop..."
Vous avez des pistes à me suggérer ?
---------------
Mon topic de vente - Mon feed-back