Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

tableau en bash

13 réponses
Avatar
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/

10 réponses

1 2
Avatar
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
nn

--
LL
Avatar
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/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.
Avatar
Thomas
In article
,
totof2000 wrote:

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/
Avatar
Thomas
In article ,
Lucas Levrel wrote:

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/
Avatar
Thomas
In article
,
Thomas wrote:

In article ,
Lucas Levrel wrote:

> 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/
Avatar
Cyrille Lefevre
Thomas a écrit :
In article
,
totof2000 wrote:

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.
Avatar
Thomas
In article ,
Cyrille Lefevre <cyrille.lefevre-news%
wrote:

Thomas a écrit :
> In article
> ,
> totof2000 wrote:
>
>> 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/
Avatar
Lucas Levrel
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
Avatar
Yves Lambert
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:~$ _
_
Avatar
Cyrille Lefevre
Thomas a écrit :
In article ,
Cyrille Lefevre <cyrille.lefevre-news%
wrote:

Thomas a écrit :
In article
,
totof2000 wrote:

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.
1 2