tableau en bash

Le
Thomas
bonjour :-)


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 ? :-)

--
Téléassistance / Télémaintenance
http://www.portparallele.com/ThomasDECONTES/
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses Page 1 / 2
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Lucas Levrel
Le #19615261
Le 21 juin 2009, Thomas a écrit :
si oui, pouvez vous m'indiquer la partie de man bash qui m'intéresse,
svp ? :-)



Bonjour,

Apparemment tu devras faire un tableau pour chaque type de donnée.
man bash
/tableaux
nn

--
LL
totof2000
Le #19615341
On 21 juin, 15:05, Thomas wrote:
bonjour :-)

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 ? :-)

--
Téléassistance / Télémaintenancehttp://www.portparallele.com/Thom asDECONTES/



echo "Nom ordi;login;adresse IP;adresse MAC" >tableau.csv
echo "A;toto;12.34.56.78;FCFF3456">>tableau.csv

Je doutes cependant que ce soit ce que tu veux faire.

Cordialement.
Thomas
Le #19616681
In article
totof2000
On 21 juin, 15:05, Thomas wrote:
> bonjour :-)
>
> 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 ? :-)
>
> --
> Téléassistance / Télémaintenancehttp://www.portparallele.com/ThomasDECONTES/

echo "Nom ordi;login;adresse IP;adresse MAC" >tableau.csv
echo "A;toto;12.34.56.78;FCFF3456">>tableau.csv

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

--
Téléassistance / Télémaintenance
http://www.portparallele.com/ThomasDECONTES/
Thomas
Le #19616671
In article Lucas Levrel
Le 21 juin 2009, Thomas a écrit :
> si oui, pouvez vous m'indiquer la partie de man bash qui m'intéresse,
> svp ? :-)

Bonjour,

Apparemment tu devras faire un tableau pour chaque type de donnée.
man bash
/tableaux



Pattern not found (press RETURN)

je suis sous mac os x 10.4.11
est ce que mon bash est incompatible ou c'est juste le man qui n'est pas
à jour ?

nn



c'est qqch que je dois taper ?

--
Téléassistance / Télémaintenance
http://www.portparallele.com/ThomasDECONTES/
Thomas
Le #19617781
In article
Thomas
In article Lucas Levrel
> Le 21 juin 2009, Thomas a écrit :
> > si oui, pouvez vous m'indiquer la partie de man bash qui m'intéresse,
> > svp ? :-)
>
> Bonjour,
>
> Apparemment tu devras faire un tableau pour chaque type de donnée.
> man bash
> /tableaux

Pattern not found (press RETURN)

je suis sous mac os x 10.4.11
est ce que mon bash est incompatible ou c'est juste le man qui n'est pas
à jour ?



c'est juste qu'il est en anglais :-)


> nn

c'est qqch que je dois taper ?



oui

merci :-)


par contre, je suis obligé d'utiliser des chiffres ? pas possibilité
d'appeler les ordis par leur nom ?

--
Téléassistance / Télémaintenance
http://www.portparallele.com/ThomasDECONTES/
Cyrille Lefevre
Le #19619801
Thomas a écrit :
In article
totof2000
On 21 juin, 15:05, Thomas wrote:
bonjour :-)

j'aurais besoin d'un tableau avec
- des noms d'ordinateurs (j'aimerais pouvoir les designer par une let tre)
- 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éress e,
svp ? :-)

--
Téléassistance / Télémaintenancehttp://www.portparallele.com/ ThomasDECONTES/


echo "Nom ordi;login;adresse IP;adresse MAC" >tableau.csv
echo "A;toto;12.34.56.78;FCFF3456">>tableau.csv

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





Bonjour,

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

http://tldp.org/LDP/Bash-Beginners-Guide/html/ (en)
http://www.traduc.org/~gleu/ykerb/ (fr)

même si c'est bourré de mauvais exemples, c'est toujours mieux que ri en...
http://tldp.org/LDP/abs/html/ (en)
http://abs.traduc.org/ (fr)

Cordialement,

Cyrille Lefevre.
--
mailto:Cyrille.Lefevre-news%
supprimer "%nospam% et ".invalid" pour me repondre.
Thomas
Le #19622401
In article Cyrille Lefevre wrote:

Thomas a écrit :
> In article
> > totof2000 >
>> On 21 juin, 15:05, Thomas >> wrote:
>>> bonjour :-)
>>>
>>> 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 ? :-)
>>>
>> echo "Nom ordi;login;adresse IP;adresse MAC" >tableau.csv
>> echo "A;toto;12.34.56.78;FCFF3456">>tableau.csv
>>
>> 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
>


Bonjour,

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] ?

--
Téléassistance / Télémaintenance
http://www.portparallele.com/ThomasDECONTES/
Lucas Levrel
Le #19623061
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}.

--
LL
Yves Lambert
Le #19624491
Thomas wrote:

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] ?



grep ?


--
Welcome to U1 2521 days up
the Message of the Day is up to date.
To get it, strike "cat /etc/motd" then <return>
u1:~$ _
_
Cyrille Lefevre
Le #19625191
Thomas a écrit :
In article Cyrille Lefevre wrote:

Thomas a écrit :
In article
totof2000
On 21 juin, 15:05, Thomas wrote:
bonjour :-)

j'aurais besoin d'un tableau avec
- des noms d'ordinateurs (j'aimerais pouvoir les designer par une l ettre)
- 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ére sse,
svp ? :-)



echo "Nom ordi;login;adresse IP;adresse MAC" >tableau.csv
echo "A;toto;12.34.56.78;FCFF3456">>tableau.csv

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




Bonjour,

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, p our
avoir accès à ses infos ?
y a rien de trivial pour avoir le i quand on connaît le host[i] ?





Bonjour,

google bash associative arrays

http://linuxshellaccount.blogspot.com/2008/05/how-to-fake-associative-arr ays-in-bash.html

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] }"

Cordialement,

Cyrille Lefevre.
--
mailto:Cyrille.Lefevre-news%
supprimer "%nospam% et ".invalid" pour me repondre.
remove "%nospam" and ".invalid" to answer me.
Publicité
Poster une réponse
Anonyme