script shell bash - Codes et scripts - Linux et OS Alternatifs
Marsh Posté le 22-06-2010 à 23:30:03
Ce sujet a été déplacé de la catégorie Systèmes & Réseaux Pro vers la categorie OS Alternatifs par Je@nb
Marsh Posté le 23-06-2010 à 00:28:52
lis un peu de doc sur le scripting shell, les redirections de flux et cut
c'est d'un simple
Marsh Posté le 23-06-2010 à 15:02:39
ReplyMarsh Posté le 23-06-2010 à 15:18:06
fighting_falcon a écrit : |
fighting_falcon a écrit : |
on ne bidouille pas l'IFS
Marsh Posté le 23-06-2010 à 15:20:19
fighting_falcon a écrit : ça, pas d'accord ==> IFS |
ouais enfin foutre la grouille dans l'IFS pour un p'tit script à la con, il vaut p'tet mieux perdre 3 minutes et ajouter un cut plutôt que de mettre sa machine en vrac après
Marsh Posté le 23-06-2010 à 15:35:08
wedgeant a écrit : |
l'IFS se repositionne à la fin du script hein juste que c'est porcho comme méthode
Marsh Posté le 23-06-2010 à 17:17:57
Plutôt que de tergiverser 25 ans sur comment faire, autant pondre directement le script demandé non ? (même si un apprentissage du shell est toujours instructif) :
Spoiler : #!/bin/bash |
C'est grossier, pas propre, pas fait pour traiter des dizaines de milliers de lignes, mais paf ça marche et ça fait ce que l'on demande
Marsh Posté le 23-06-2010 à 18:46:13
black_lord a écrit : on ne bidouille pas l'IFS |
tu peux argumenter stp (suis curieux !!)
sinon, ma version de la chose :
Citation :
file=toto.txt while IFS=: read prenom nom login groupe |
du coup, l'IFS n'est modifié que pendant l'exécution de la boucle ...
Marsh Posté le 23-06-2010 à 22:41:30
fighting_falcon a écrit :
|
useless use of cat + bashisme spotted
Marsh Posté le 24-06-2010 à 13:59:16
D'accord pour le cat, par contre je comprends pas le "bashisme" (en général, pas forcément sur cet exemple). Je m'explique, si quelqu'un écrit un script en Python, je vais pas lui reprocher de "pythoner", il utilise les possibilités de son langage et ne se restreint pas pour rester compatible avec une version de Python d'y il a cinq ou dix ans ! Par contre quand tu scripts en bash il semble de bon ton de se limiter a une syntaxe sh (sinon c'est pas pÔrtable ma bonne dame). Si je script en Bash j'utilise toutes les possibilités du langage et si je dois faire du compatible sh et bien je fais pas un script bash mais un script sh, that's all.
P.S. : Je n'ai rien contre le Python, que je ne connais pas, n'y contre les pythoneurs. Je les aimes, avec de la mayonnaise surtout !
Marsh Posté le 24-06-2010 à 14:34:35
twocats a écrit : D'accord pour le cat, par contre je comprends pas le "bashisme" (en général, pas forcément sur cet exemple). Je m'explique, si quelqu'un écrit un script en Python, je vais pas lui reprocher de "pythoner", il utilise les possibilités de son langage et ne se restreint pas pour rester compatible avec une version de Python d'y il a cinq ou dix ans ! Par contre quand tu scripts en bash il semble de bon ton de se limiter a une syntaxe sh (sinon c'est pas pÔrtable ma bonne dame). Si je script en Bash j'utilise toutes les possibilités du langage et si je dois faire du compatible sh et bien je fais pas un script bash mais un script sh, that's all. |
Bha ouai spa portable ma bonne dame, surtout que t'as moyen d'écrire < <(cmd) comme ça:
<< EOF
$(cmd)
EOF
donc autant faire un truc qui passe partout que de faire du bash-only
Marsh Posté le 24-06-2010 à 20:32:47
zecrazytux a écrit : useless use of cat + bashisme spotted |
ok, j'avoue ...
m'enfin j'ai pondu ça à l'arrache, de mémoire ... c'pô perfect quoi
twocats a écrit : ... par contre je comprends pas le "bashisme" ... |
Le soucis, c'est que quand tu mets "#!/usr/bin/python" c'est vraiment l'interpréteur python qui est appelé ...
Alors que "#!/bin/bash", sur Debian maintenant c'est Dash par défaut, sur Ubuntu je ne sais plus, sur d'autres distrib ça va être je ne sais quel "C-Sh" ...
Et en plus, l'utilisateur est libre de choisir son shell préféré ... ce qui, a priori, va modifier le lien /bin/bash (oui parce que c'est bien un lien, vers un système d'alternatives généralement), pour des raisons de simplicité / unicité, vers un shell qui ne saura pas forcément décoder des trucs bien bash
Marsh Posté le 24-06-2010 à 23:04:33
Euh, c'est /bin/sh qui est un lien vers n'importe quoi ce me semble . Sinon pour le coup ça deviens ingérable de faire un script Bash.
D'ailleurs sur ma petite Mandriva (qui soit-dit en passant est super stable depuis que la nouvelle version est en retard ) /bin/bash est un exécutable et /bin/sh un lien (vers /bin/bash d'ailleurs).
Marsh Posté le 22-06-2010 à 22:05:09
Bonjour à tous!
Voilà je suis en train de déployer une serveur ldap(openldap et samba en PDC) qui fonctionne à merveille. Cependant, j'aimerai automatisé l'ajout d'utilisateur. En fait je veux faire un script que aille chercher les infos (nom, prénom, groupe et login) dans un fichier texte et grâce à une boucle qui remplisse la base ldap. Je sais que l'on peut exécuter une commande (avec des variables) à l'intérieur d'un script mais je suis perdu pour le reste
Voici mon fichier texte et les variable associées:
$prenom:*$nom:$login:$groupe
arnaud:damour:adamour:789
benoit:vallet:bvallet:542
alexandre:rendour:arendour:456
toto:tutu:ttutu:254
Voici la commande qui sera à exécuter dans le script une fois les infos récupérées dans les variables:
Exemple:smbldap-useradd -a -m -P -A 1 -g 788 -N Gaetan -S Rabier g.rabier
commande avec variable: smbldap-useradd -a -m -P -A 1 -g $groupe -N $prenom -S $nom $login
Quelqu'un pourrait-il m'aider?
Merci beaucoup
Arnaud