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

script shell et fichiers de config

2 réponses
Avatar
Nicolas-Michel_REMOVE
Bonjour

Je suis en train de faire un petit script shell qui nécessite un fichier
de configuration.

Habituellement je fait un fichier plat puis joues du grep, awk, sed,
echo > ... Mais c'est fastidieux.

J'ai tenté d'utiliser PlistBuddy, un outil xml.
Il me permet de balancer assez simplement des info structurées, mais
pour aller les rechercher, à moins qu'il n'y ait qu'une seule valeur on
se retrouve avec une sortie xml qu'il faut parser, c'est justement pas
le but.

Je pourrais aussi remplacer le fichier de config par une base sql, mais
ça implique d'installer sql, donc non.

Existe-t-il une commande qui pourrait envoyer puis récupérer des données
dans un fichier texte de manière simple ?

Genre :
$ command write liste1 "valeur1
valeur2"
$ command add liste1 "valeur3"
$ command read liste1
valeur1
valeur2
valeur3



Merci !

--
Nicolas Michel

2 réponses

Avatar
Stephane CHAZELAS
2009-03-26, 13:02(+01), Michel Nicolas Alex:
[...]
Je suis en train de faire un petit script shell qui nécessite un fichier
de configuration.


[...]

Pourquoi pas tout simplement:

monscript.conf:

conf_param1=value
conf_param2=value
...

Et dans monscript:

. /path/to/monscript.conf || exit
use "$conf_param1" "$conf_param2"

?
--
Stéphane
Avatar
Nicolas-Michel_REMOVE
Stephane CHAZELAS wrote:

2009-03-26, 13:02(+01), Michel Nicolas Alex:
[...]
> Je suis en train de faire un petit script shell qui nécessite un fichier
> de configuration.
[...]

Pourquoi pas tout simplement:

monscript.conf:

conf_param1=value
conf_param2=value
...

Et dans monscript:

. /path/to/monscript.conf || exit
use "$conf_param1" "$conf_param2"

?



Probablement que je ne me suis pas expliqué assez clairement.

Tant qu'il n'y a qu'une simple liste de variable, c'est facile ...

Mais prends par exemple smb.conf.

Il y a un chapitre [global] puis un ou plusieurs chapitres "special" où
le [nom] est inscrit entre crochets.
Pour utiliser ce fichier, tu dois donc découper le fichier en chapitres.
Puis quand tu écrit dans le fichier, tu dois replacer la ligne dans le
bon chapitre.

On pourrait du reste ajouter un niveau d'arborescence, voir plusieurs.

[global]
[[section 1]]
param1=value
param2=value
[[section 2]]
param1=value
param2=value
[[special1]]
[[section 1]]
param1=value
param2=value
[[section 2]]
param1=value
param2=value
[special2]
[[section 1]]
param1=value
etc ...

J'ai finit par faire une fonction qui va chercher l'info et une autre
qui va écrire au bon endroit.
Mais c'est un peu con parce que ce genre de besoins me semble courant,
donc j'ai de la peine à immaginer que personne n'a fait un petit binaire
qui gère ça bien mieux que ce que je suis capable de faire.
A ce qu'il me semble c'est un peu la raison d'être du xml, mais les
outils que j'ai trouvé m'ont déçu.

D'où ma question ...

Merci !
--
Nicolas Michel