j'aurais besoin d'un tableau avec
- des noms d'ordinateurs (j'aimerais pouvoir les designer par une lettre)
- pour chacun : login, adresse ip, adresse mac
est ce que c'est possible de faire ça en bash ?
(c'est pour utiliser dans des fonctions disponibles dans le shell
interactif)
si oui, pouvez vous m'indiquer la partie de man bash qui m'intéresse,
svp ? :-)
In article , Cyrille Lefevre <cyrille.lefevre-news% wrote:
Thomas a écrit :
In article , totof2000 wrote:
On 21 juin, 15:05, Thomas > wrote:
j'aurais besoin d'un tableau avec - des noms d'ordinateurs (j'aimerais pouvoir les designer par une lettre) - pour chacun : login, adresse ip, adresse mac
est ce que c'est possible de faire ça en bash ? (c'est pour utiliser dans des fonctions disponibles dans le shell interactif)
si oui, pouvez vous m'indiquer la partie de man bash qui m'intér esse, svp ? :-)
Je doutes cependant que ce soit ce que tu veux faire.
en fait je veux faire juste l'inverse :
à la rigueur si faut vraiment passer par un csv je peux le faire à la main mais après il faut le lire
je sais, c'est pas bien de faire les exercices des autres, mais bon : -)
i=0; while IFS=';' read -r host[i] login[i] ip[i] mac[i]; do (( i += 1 )); done < fichier.csv # avec ; comme séparateur unset host[i] login[i] ip[i] mac[i] for i in ${!host[@]}; do echo "$i => ${host[i]} ${login[i]} ${ip[i] } ${mac[i]}"; done
avec ce système, on est tjr obligé de connaître le i d'un ordi, pour avoir accès à ses infos ? y a rien de trivial pour avoir le i quand on connaît le host[i] ?
hindex() { local i; for i in ${!host[@]}; do if [[ ${host[i]} == $1 ]]; then echo $i; return 0; fi; done; return 1; } i=$(hindex A) && echo "$i => ${host[i]} ${login[i]} ${ip[i]} ${mac[ i]}"
Bonjour,
PS : mauvais shell, changer shell => ksh93 car il sait gérer les tableaux associatifs ou awk, mais cela ne faisait pas partie de l'assertion du départ...
Cordialement,
Cyrille Lefevre. -- mailto:Cyrille.Lefevre-news% supprimer "%nospam% et ".invalid" pour me repondre.
Cyrille Lefevre a écrit :
Thomas a écrit :
In article <4A4024B6.5050706@laposte.net.invalid>,
Cyrille Lefevre <cyrille.lefevre-news%nospam@laposte.net.invalid>
wrote:
Thomas a écrit :
In article
<7701f190-07b8-4afd-acaa-bffffec49817@l21g2000vba.googlegroups.com>,
totof2000 <cdesquesnes@ifrance.com> wrote:
On 21 juin, 15:05, Thomas <fantome.forums.tDeCon...@free.fr.invalid >
wrote:
j'aurais besoin d'un tableau avec
- des noms d'ordinateurs (j'aimerais pouvoir les designer par une
lettre)
- pour chacun : login, adresse ip, adresse mac
est ce que c'est possible de faire ça en bash ?
(c'est pour utiliser dans des fonctions disponibles dans le shell
interactif)
si oui, pouvez vous m'indiquer la partie de man bash qui m'intér esse,
svp ? :-)
Je doutes cependant que ce soit ce que tu veux faire.
en fait je veux faire juste l'inverse :
à la rigueur si faut vraiment passer par un csv je peux le faire à
la main
mais après il faut le lire
je sais, c'est pas bien de faire les exercices des autres, mais bon : -)
i=0; while IFS=';' read -r host[i] login[i] ip[i] mac[i]; do (( i +=
1 )); done < fichier.csv # avec ; comme séparateur
unset host[i] login[i] ip[i] mac[i]
for i in ${!host[@]}; do echo "$i => ${host[i]} ${login[i]} ${ip[i] }
${mac[i]}"; done
avec ce système, on est tjr obligé de connaître le i d'un ordi, pour
avoir accès à ses infos ?
y a rien de trivial pour avoir le i quand on connaît le host[i] ?
hindex() { local i; for i in ${!host[@]}; do if [[ ${host[i]} == $1 ]];
then echo $i; return 0; fi; done; return 1; }
i=$(hindex A) && echo "$i => ${host[i]} ${login[i]} ${ip[i]} ${mac[ i]}"
Bonjour,
PS : mauvais shell, changer shell => ksh93 car il sait gérer les
tableaux associatifs ou awk, mais cela ne faisait pas partie de
l'assertion du départ...
Cordialement,
Cyrille Lefevre.
--
mailto:Cyrille.Lefevre-news%nospam@laposte.net.invalid
supprimer "%nospam% et ".invalid" pour me repondre.
In article , Cyrille Lefevre <cyrille.lefevre-news% wrote:
Thomas a écrit :
In article , totof2000 wrote:
On 21 juin, 15:05, Thomas > wrote:
j'aurais besoin d'un tableau avec - des noms d'ordinateurs (j'aimerais pouvoir les designer par une lettre) - pour chacun : login, adresse ip, adresse mac
est ce que c'est possible de faire ça en bash ? (c'est pour utiliser dans des fonctions disponibles dans le shell interactif)
si oui, pouvez vous m'indiquer la partie de man bash qui m'intér esse, svp ? :-)
Je doutes cependant que ce soit ce que tu veux faire.
en fait je veux faire juste l'inverse :
à la rigueur si faut vraiment passer par un csv je peux le faire à la main mais après il faut le lire
je sais, c'est pas bien de faire les exercices des autres, mais bon : -)
i=0; while IFS=';' read -r host[i] login[i] ip[i] mac[i]; do (( i += 1 )); done < fichier.csv # avec ; comme séparateur unset host[i] login[i] ip[i] mac[i] for i in ${!host[@]}; do echo "$i => ${host[i]} ${login[i]} ${ip[i] } ${mac[i]}"; done
avec ce système, on est tjr obligé de connaître le i d'un ordi, pour avoir accès à ses infos ? y a rien de trivial pour avoir le i quand on connaît le host[i] ?
hindex() { local i; for i in ${!host[@]}; do if [[ ${host[i]} == $1 ]]; then echo $i; return 0; fi; done; return 1; } i=$(hindex A) && echo "$i => ${host[i]} ${login[i]} ${ip[i]} ${mac[ i]}"
Bonjour,
PS : mauvais shell, changer shell => ksh93 car il sait gérer les tableaux associatifs ou awk, mais cela ne faisait pas partie de l'assertion du départ...
Cordialement,
Cyrille Lefevre. -- mailto:Cyrille.Lefevre-news% supprimer "%nospam% et ".invalid" pour me repondre.
Stephane CHAZELAS
2009-06-24, 04:54(+02), Cyrille Lefevre: [...]
PS : mauvais shell, changer shell => ksh93 car il sait gérer les tableaux associatifs ou awk, mais cela ne faisait pas partie de l'assertion du départ...
[...]
Les dernieres versions de bash ont le support des tableaux associatifs tout comme ksh93 et zsh. Mais awk parsant un fichier de definitions me semble plus approprié, plutot que d'ecrire un script dans un language non-standard.
-- Stéphane
2009-06-24, 04:54(+02), Cyrille Lefevre:
[...]
PS : mauvais shell, changer shell => ksh93 car il sait gérer les
tableaux associatifs ou awk, mais cela ne faisait pas partie de
l'assertion du départ...
[...]
Les dernieres versions de bash ont le support des tableaux
associatifs tout comme ksh93 et zsh. Mais awk parsant un fichier
de definitions me semble plus approprié, plutot que d'ecrire un
script dans un language non-standard.
PS : mauvais shell, changer shell => ksh93 car il sait gérer les tableaux associatifs ou awk, mais cela ne faisait pas partie de l'assertion du départ...
[...]
Les dernieres versions de bash ont le support des tableaux associatifs tout comme ksh93 et zsh. Mais awk parsant un fichier de definitions me semble plus approprié, plutot que d'ecrire un script dans un language non-standard.
-- Stéphane
Thomas
In article , Lucas Levrel wrote:
Le 22 juin 2009, Thomas a écrit :
> par contre, je suis obligé d'utiliser des chiffres ? pas possibilité > d'appeler les ordis par leur nom ?
Plus ou moins. man bash, /indirection
Exemple : coulomb:~> toto=5 coulomb:~> titi=toto coulomb:~> echo ${!titi} 5
Donc tu crées une variable par ordi qui contient son numéro (totonum=1, foonum=2...), puis si host contient le nom de l'ordi (toto, foo...), tu obtiens son numéro avec temp=${host}num, puis ${!temp}.
bon ben tu viens de me donner une idée :-)
au lieu de faire un tableau pour chaque propriété, je fais un tableau pour chaque ordi :-)
awk m'a l'air assez compliqué, et je pense que ça sera suffisant et le plus simple pour mon cas :-)
quoi qu'il en soit, merci à tous :-) on apprend tjr des petits trucs :-)
In article <Pine.LNX.4.64.0906231720340.4351@coulomb.univ-paris12.fr>,
Lucas Levrel <lucas.levrel@univ-paris12.fr> wrote:
Le 22 juin 2009, Thomas a écrit :
> par contre, je suis obligé d'utiliser des chiffres ? pas possibilité
> d'appeler les ordis par leur nom ?
Plus ou moins. man bash, /indirection
Exemple :
coulomb:~> toto=5
coulomb:~> titi=toto
coulomb:~> echo ${!titi}
5
Donc tu crées une variable par ordi qui contient son numéro (totonum=1,
foonum=2...), puis si host contient le nom de l'ordi (toto, foo...), tu
obtiens son numéro avec temp=${host}num, puis ${!temp}.
bon ben tu viens de me donner une idée :-)
au lieu de faire un tableau pour chaque propriété, je fais un tableau
pour chaque ordi :-)
awk m'a l'air assez compliqué,
et je pense que ça sera suffisant et le plus simple pour mon cas :-)
quoi qu'il en soit, merci à tous :-)
on apprend tjr des petits trucs :-)
> par contre, je suis obligé d'utiliser des chiffres ? pas possibilité > d'appeler les ordis par leur nom ?
Plus ou moins. man bash, /indirection
Exemple : coulomb:~> toto=5 coulomb:~> titi=toto coulomb:~> echo ${!titi} 5
Donc tu crées une variable par ordi qui contient son numéro (totonum=1, foonum=2...), puis si host contient le nom de l'ordi (toto, foo...), tu obtiens son numéro avec temp=${host}num, puis ${!temp}.
bon ben tu viens de me donner une idée :-)
au lieu de faire un tableau pour chaque propriété, je fais un tableau pour chaque ordi :-)
awk m'a l'air assez compliqué, et je pense que ça sera suffisant et le plus simple pour mon cas :-)
quoi qu'il en soit, merci à tous :-) on apprend tjr des petits trucs :-)