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 :
On peut voir que la variable file est vide alors qu'elle devrait prendre comme valeur "fichier_sup".
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
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.
Partager