Bonjour !
Naviguant beaucoup sur des sites de vente anglais, j'avais besoin d'une conversion rapide et efficace des devises.
Ne trouvant pas de convertisseur de devises en ligne de commande déjà fait, j'ai donc décidé de le faire moi-même.
Comme ça peut-être utile à pas mal de gens, je vous le donne ici.
Etant en manque d'inspiration, je l'ai temporairement baptisé dconv.
Il est actuellement en version 0.2 (il sera en v1 quand la TODO list sera satisfaite).
Fonctionnement
L'appel du script se fait ainsi :
dconv $valeur $devise1 $devise2
Si vous tapez :
dconv 2 € $
OU
dconv 2 euros dollars
Le script va alors convertir 2 euros en dollars.
Il donne au passage le taux de conversion.
Quand la commande est tappée, il télécharge un fichier .csv depuis le convertisseur de devise de Yahoo.
Ce fichier contient le taux de change entre les deux devises.
Un simple calcul suffit alors pour obtenir la valeur convertie.
Pour la version actuelle, ce script a besoin du paquet "calc".
Script
#!/bin/bash
# DevConv v0.2
# Convertisseur de devises en ligne de commande
# Merci à FreeTools : http://free-tools.fr/code/php-javascript-ajax-conversion-de-devise-994/
### Variables
version="v0.2"
Option=""
devise_origine=""
devise_sortie=""
taux=""
valeur=""
valeur_entree=""
### Fonctions
f_erreur() {
if [ $1="arg-inv" ]; then
echo "Opérande invalide"
exit 1
fi
}
f_conv() {
wget "http://quote.yahoo.com/d/quotes.csv?s=$devise_origine$devise_sortie=X&f=l1&e=.csv" &>/dev/null
taux=$(cat /tmp/quotes.csv*)
echo "Taux"
cat /tmp/quotes.csv*
# Conversion avec le taux et l'entrée $1
valeur=$(calc $valeur_entree*$taux)
echo "Valeur"
echo "$valeur"
rm quotes.csv*
exit 0
}
### Programme
cd /tmp
valeur_entree=$1
case $1 in
"info")
echo " dConv"
echo ""
echo " Script convertisseur de devises"
echo "Exemple :"
echo "dconv 4 € £"
echo "Converti 4€ en £."
echo "Supporte : € £ $"
echo "Version : $version"
echo ""
echo "Par rezemika - CC By - SA"
exit 0
;;
*)
;;
esac
case $2 in
"€" | "e" | "euro" | "euros")
devise_origine="EUR"
;;
"$" | "d" | "dollar" | "dollars")
devise_origine="USD"
;;
"£" | "l" | "livre" | "livres")
devise_origine="GBP"
;;
*)
f_erreur arg-inv # Ou un support d'autres devises à l'avenir
;;
esac
case $3 in
"€" | "e" | "euro" | "euros")
devise_sortie="EUR"
;;
"$" | "d" | "dollar" | "dollars")
devise_sortie="USD"
;;
"£" | "l" | "livre" | "livres")
devise_sortie="GBP"
;;
*)
f_erreur arg-inv # Ou un support d'autres devises à l'avenir
;;
esac
f_conv
exit 0
TODO
- supporter d'autres devises
- utiliser une autre méthode de calcul ("let" me renvoi une erreur que je tente de corriger)
- accelerer la réponse du script
- rendre le script plus propre
Voilà, si vous avez des suggestions, des remarques ou des questions, je suis tout ouïe.
Bon week-end !