Bonjour,

Je viens tout droit du forum BBD, et j'ai un problème avec mon script en bash, et plus particulièrement les variables.

Mon objectif est à partir d'un linux, de me connecter sur une base de donnée pour effectuer des requêtes.

Pour cela, j'utilise l'outil FreeTDS pour me connecter à ma bbd via la commande :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
TDSVER=7.0 tsql -H **** -p **** -U **** -P **** < test.sql
Cette commande va se connecter et effectuer ce script en SQL :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
USE GTB_MATMUT
go
declare @agence int
select top 1 valeur from agence_capteur where id_agence = @agence and id_capteur = 10001 order by date_heure desc
go
exit
Sauf que voila, j'aimerai que le "id_agence" soit une variable que je puisse modifier depuis ma commande.

Pour cela j'ai créer un script en bash :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
#!/bin/bash
# Argument
agence=$1
 
TDSVER=7.0 tsql -H **** -p **** -U **** -P **** < test.sql

Je le lance via la commande via cette commande, mais je n'obtient aucun résultat... Pouvez-vous m'aider ?

Ps : Dans la commande tsql, les variables sont définies via le "@" et non le "$".

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
bash -x test.sh 4505
+ agence=4505
+ TDSVER=7.0
+ tsql -H **** -p **** -U **** -P ****
locale is "fr_FR.UTF-8"
locale charset is "UTF-8"
using default charset "UTF-8"
1> 2> 1> 2> 3> valeur
1>