Bonjour !

J'essaye de tester un script que j'ai fait. Ce script prend en compte des entrée manuelles avec la commande "read". Pour automatiser mon test, j'utilise des données présentes dans un fichier de données avec la commande "cat" : cat <fichier_de_données> | ./mon_script
Dans mon script, j'utilise des commandes ssh pour me connecter à un pc distant.
Mon problème, et je ne comprends absolument pas pourquoi, est que le script ne prend plus ne compte les données dans le fichiers de données (avec la commande read) une fois qu'une commande ssh soit exécutée.

Voici le contenu de mon fichier de données ainsi qu'une version simplifiée de mon script pour que ce soit plus compréhensible :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
 
$ cat fichiercom
pass123
fichier_sup
 
$ cat fichiercom | sh -v -x ./essai.sh
#!/bin/sh
read pass
+ read pass
echo "mdp : " $pass
+ echo mdp :  pass123
mdp :  pass123
i=$(sshpass -p $pass ssh $USER@10.2.20.5 du -s /home/$USER/fichiers | cut -f 1 -d "/")
+ cut -f 1 -d /
+ sshpass -p pass123 ssh etu1@10.2.20.5 du -s /home/etu1/fichiers
+ i=2000036
echo "$i"
+ echo 2000036
2000036
read file
+ read file
echo "fichiers : " $file
+ echo fichiers :
fichiers :
echo
+ echo
On peut voir que la variable file est vide alors qu'elle devrait prendre comme valeur "fichier_sup".

Je n'ai rien trouvé lié à cela sur internet.

C'est la première fois que je poste sur un forum, je ne suis pas sûr que mon message est sa place ici mais je tenter quand même.

J'espère que vous saurez m'aider !

Merci beaucoup.