Forum debian-fr.org

Rechercher:

* Connexion   * M’enregistrer

* FAQ    * Rechercher





Poster un nouveau sujet Répondre au sujet  [ 1 message ] 
Auteur Message
MessagePosté: 30 Nov 2011 12:10 
En ligne
Vraiment, particulièrement bavard(e)!
Avatar de l’utilisateur

Inscription: 18 Mai 2009 16:49
Messages: 2358
Salut,

Il arrive souvent qu'on ait besoin dans un script shell de stocker différents paramètres d'une invocation à l'autre. Dans la plupart des cas, un bête tableau associatif (clé,valeur) est amplement suffisant mais on se retrouve souvent à bricoler un truc sur trois pattes. Du coup je ressors ce petit script de mes cartons, il se base sur SQLite pour stocker les paires de valeurs.
Accessoirement, même si le côté stockage n'est pas forcément nécessaire pour un script donné ça peut aussi servir pour des tableaux associatifs temporaires si on veut éviter d'utiliser bash.

Note : ça n'a pas vocation à être super performant, simplement à être facile d'emploi pour une utilisation ad-hoc.

Téléchargement : https://github.com/syam44/kvstore/tarball/master

Installation :
Code:
# aptitude install sqlite3
# ./configure install


Utilisation :
Code:
$ kvstore NOM-DU-FICHIER [COMMANDES...]


Un simple appel sans aucune commande va créer la base si nécessaire, et vérifier qu'elle est au bon format :
Code:
$ kvstore test.db

Si le fichier n'est pas une base SQLite / n'est pas au bon format, on obtient une erreur avec code de retour 2 :
Code:
$ echo "pas du sqlite" > test.db
$ kvstore test.db
Error: file is encrypted or is not a database
ERROR: SQLite reported an error. Aborting.
$ echo $?
2


Pour une invocation donnée, toutes les commandes sont traitées ou bien ensemble, ou bien pas du tout (autrement dit, si une des commandes provoque une erreur alors rien ne sera fait du tout), et dans l'ordre où elles sont placées sur la ligne de commandes (sauf -f, seule la dernière occurrence est prise en compte).

-f X utilise le texte X comme séparateur de champ lorsque des paires de valeurs (clé,valeur) sont affichées. Par défaut : |
-kv affiche toutes les paires de valeurs (clé,valeur) stockées.
-k affiche toutes les clés stockées.
-v affiche toutes les valeurs stockées.
-g K affiche la valeur correspondant à la clé K.
-m K affiche les paires de valeurs (clé,valeur) dont les clés correspondent au motif K (syntaxe glob classique d'Unix).
-s K V stocke une paire de valeurs (K,V).
-d K supprime la paire de valeurs (clé,valeur) correspondant à la clé K.

Exemples :
Code:
$ kvstore test.db
$ kvstore test.db -s "clé1" "valeur1" -s "clé2" "valeur2" -kv
clé1|valeur1
clé2|valeur2
$ kvstore test.db -f ";" -kv
clé1;valeur1
clé2;valeur2
$ kvstore test.db -d "clé1" -k
clé2
$ kvstore test.db -v
valeur2
$ kvstore test.db  -f ";" -k -s "clé3" "valeur3" -g "clé3" -m "clé*" -f "/"
clé2
valeur3
clé2/valeur2
clé3/valeur3
$ kvstore -s "clé3" "autre chose" -kv
clé2|valeur2
clé3|autre chose


Voilà, si ça peut vous servir dans vos scripts alors tant mieux... ;)

_________________
testing/unstable (amd64) sous KDE4
https://github.com/syam44


Haut
 Profil  
 
Afficher les messages postés depuis:  Trier par  
Poster un nouveau sujet Répondre au sujet  [ 1 message ] 

Index du forum » Forums d'aide » Trucs et Astuces


Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités


Vous ne pouvez pas poster de nouveaux sujets
Vous ne pouvez pas répondre aux sujets
Vous ne pouvez pas éditer vos messages
Vous ne pouvez pas supprimer vos messages
Vous ne pouvez pas joindre des fichiers

Aller à:  
Flux RSS Flux RSS Liste des flux Liste des flux
Powered by phpBB® Forum Software © phpBB Group
Traduction par: phpBB-fr.com
SEO
[ Time : 0.124s | 11 Queries | GZIP : Off ]