Script Shell pour tracé avec Gnuplot
Résolu/Fermé
nonoEW
Messages postés
28
Date d'inscription
samedi 2 août 2008
Statut
Membre
Dernière intervention
18 avril 2011
-
2 août 2008 à 17:35
jingmei - 14 déc. 2009 à 20:23
jingmei - 14 déc. 2009 à 20:23
A voir également:
- Gnuplot shell script
- Script vidéo youtube - Guide
- Classic shell windows 11 - Télécharger - Personnalisation
- Microsoft activation script - Accueil - Windows
- Ghost script - Télécharger - Polices de caractères
- Script cmd - Guide
11 réponses
jipicy
Messages postés
40842
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 898
4 août 2008 à 14:18
4 août 2008 à 14:18
Surement...
En reprenant l'exemple ci-dessus :
En reprenant l'exemple ci-dessus :
#! /bin/sh DATE=$(date '+%d-%m-%Y') gnuplot <<EOF set logscale y set xlabel 'Valeur de x' set ylabel 'Grandeur à calculer' set yrange [1:10000] set grid set nokey set label "Reference" at 20,1000 set label "Mesures" at 20,100 plot x**2, x**2+12*x*sin(sqrt(x)) pause -1 set term postscript portrait set output "${DATE}.ps" set size 0.7, 0.7 replot EOFdevrait le faire.
jipicy
Messages postés
40842
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 898
2 août 2008 à 17:50
2 août 2008 à 17:50
Salut,
Normalement en mettant toutes ces commandes dans un simple fichier texte que tu appelleras comme suit :
;-))
Normalement en mettant toutes ces commandes dans un simple fichier texte que tu appelleras comme suit :
gnuplot fichier.txt
;-))
Merci JP pour cette réponse mais il m'est imposé de mettre cela dans un script shell. De plus la création du fichier .ps n'est assurée en faisant comme cela.
Nono
Nono
jipicy
Messages postés
40842
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 898
3 août 2008 à 15:35
3 août 2008 à 15:35
Si si c'est faisable.
Regarde sur cette page : http://www-rst.int-evry.fr/~hebutern/IT21/Simu/Gnuplot.html
En prenant toutes les commandes données dans la partie intitulée "Exemple" et en les mettant dans un fichier, tu crées ensuite un script sh depuis lequel tu appelleras ton fichier de commande via la commande "gnuplot".
Regarde sur cette page : http://www-rst.int-evry.fr/~hebutern/IT21/Simu/Gnuplot.html
En prenant toutes les commandes données dans la partie intitulée "Exemple" et en les mettant dans un fichier, tu crées ensuite un script sh depuis lequel tu appelleras ton fichier de commande via la commande "gnuplot".
#! /bin/sh gnuplot fichier.commandeTon fichier .ps sera créé et le graphe s'affichera...
nonoEW
Messages postés
28
Date d'inscription
samedi 2 août 2008
Statut
Membre
Dernière intervention
18 avril 2011
3
4 août 2008 à 13:50
4 août 2008 à 13:50
Merci, j'ai essayé, cela marche très bien mais au risque d'être chiant ,)
J'aimerais tout de même savoir si il est possible de faire cela avec un seul et même fichier shell qui me créer un fichier .ps à chaque fois que je l'éxécute avec date+heure comme nom de fichier .ps.
Nono
J'aimerais tout de même savoir si il est possible de faire cela avec un seul et même fichier shell qui me créer un fichier .ps à chaque fois que je l'éxécute avec date+heure comme nom de fichier .ps.
Nono
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
nonoEW
Messages postés
28
Date d'inscription
samedi 2 août 2008
Statut
Membre
Dernière intervention
18 avril 2011
3
4 août 2008 à 16:02
4 août 2008 à 16:02
ok, merci, c'est nickel tout ça !!!
j'ai une dernière question...
Voilà le code pour mon tracé :
#! /bin/sh
DATE=$(date '+%d-%m-%Y-%H:%M:%S')
gnuplot <<EOF
set term postscript landscape
set output 'SPND_SU_PS_${DATE}.ps'
set xlabel 'Time'
set ylabel 'Flux'
set grid
set nokey
set title 'Response'
plot "data.log" using 1:2 with lines
EOF
Est-il possible de faire en sorte d'utiliser systématiquement le dernier fichier de points (.log) enregistré sur le disque pour le tracé ?? Et éventuellement mettre un message si aucun fichier .log n'est présent sur le disque ?
Nono
j'ai une dernière question...
Voilà le code pour mon tracé :
#! /bin/sh
DATE=$(date '+%d-%m-%Y-%H:%M:%S')
gnuplot <<EOF
set term postscript landscape
set output 'SPND_SU_PS_${DATE}.ps'
set xlabel 'Time'
set ylabel 'Flux'
set grid
set nokey
set title 'Response'
plot "data.log" using 1:2 with lines
EOF
Est-il possible de faire en sorte d'utiliser systématiquement le dernier fichier de points (.log) enregistré sur le disque pour le tracé ?? Et éventuellement mettre un message si aucun fichier .log n'est présent sur le disque ?
Nono
jipicy
Messages postés
40842
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 898
4 août 2008 à 16:12
4 août 2008 à 16:12
Re-
Oui c'est possible.
Mais faut-il encore savoir comment différencier le dernier fichier de log ? Date ? Nom ?
Oui c'est possible.
Mais faut-il encore savoir comment différencier le dernier fichier de log ? Date ? Nom ?
nonoEW
Messages postés
28
Date d'inscription
samedi 2 août 2008
Statut
Membre
Dernière intervention
18 avril 2011
3
4 août 2008 à 16:20
4 août 2008 à 16:20
Le fichier de log devrait toujours être différencié par la date et son nom devrait avoir la forme suivante :
data_${DATE}.log
Nono
data_${DATE}.log
Nono
jipicy
Messages postés
40842
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 898
4 août 2008 à 16:44
4 août 2008 à 16:44
T'as pas un exemple de listing du répertoire contenant les fichiers (ls -l), histoire de voir sur quoi se baser pour la récup du dernier enregistrement...
nonoEW
Messages postés
28
Date d'inscription
samedi 2 août 2008
Statut
Membre
Dernière intervention
18 avril 2011
3
5 août 2008 à 10:02
5 août 2008 à 10:02
Après réflexion... Comme la nuit porte conseil, je pense que le fait de prendre le dernier fichier enregistré n'est pas super maintenable comme solution.
Il faudrait mieux faire en sorte qu'à l'execution du script sh, une fenetre type konqueror s'ouvre et qu'on puisse sélectionner directement le fichier de point pour le tracé.
Est ce plus simple comme solution ?
Nono
Il faudrait mieux faire en sorte qu'à l'execution du script sh, une fenetre type konqueror s'ouvre et qu'on puisse sélectionner directement le fichier de point pour le tracé.
Est ce plus simple comme solution ?
Nono
nonoEW
Messages postés
28
Date d'inscription
samedi 2 août 2008
Statut
Membre
Dernière intervention
18 avril 2011
3
5 août 2008 à 14:21
5 août 2008 à 14:21
J'ai essayé de sélectionner le fichier à partir de la commande Dialog, c'est pas mal mais le truc c'est que ça marche pas tip top la selection du fichier me donne tout le chemin alors que je n'ai besoin que du nom simple.
Voici mon essai:
#! /bin/sh
DATE=$(date '+%d-%m-%Y-%H:%M:%S')
#PROGRAM="/opt/kde3/bin/konqueror"
DIALOG=${DIALOG=dialog}
FILE=`$DIALOG --stdout --title "Choisissez un fichier" --fselect $HOME/ 14 48`
case $? in
0)
echo "\"$FILE\" selected";;
1)
echo "Appuyé sur Annuler.";;
255)
echo "Fenêtre fermée.";;
esac
if [ ! -e "{$FILE}" ]
then
gnuplot <<EOF
set term postscript landscape
set output 'SPND_SU_PS_${DATE}.ps'
set xlabel 'Time'
set ylabel 'Flux'
set grid
set nokey
set title 'SPND Response'
plot "{$FILE}" using 1:2 with lines
EOF
fi
Nono
Voici mon essai:
#! /bin/sh
DATE=$(date '+%d-%m-%Y-%H:%M:%S')
#PROGRAM="/opt/kde3/bin/konqueror"
DIALOG=${DIALOG=dialog}
FILE=`$DIALOG --stdout --title "Choisissez un fichier" --fselect $HOME/ 14 48`
case $? in
0)
echo "\"$FILE\" selected";;
1)
echo "Appuyé sur Annuler.";;
255)
echo "Fenêtre fermée.";;
esac
if [ ! -e "{$FILE}" ]
then
gnuplot <<EOF
set term postscript landscape
set output 'SPND_SU_PS_${DATE}.ps'
set xlabel 'Time'
set ylabel 'Flux'
set grid
set nokey
set title 'SPND Response'
plot "{$FILE}" using 1:2 with lines
EOF
fi
Nono
jipicy
Messages postés
40842
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 898
>
nonoEW
Messages postés
28
Date d'inscription
samedi 2 août 2008
Statut
Membre
Dernière intervention
18 avril 2011
5 août 2008 à 14:56
5 août 2008 à 14:56
plot "${FILE##*/}";-))
nonoEW
Messages postés
28
Date d'inscription
samedi 2 août 2008
Statut
Membre
Dernière intervention
18 avril 2011
3
>
jipicy
Messages postés
40842
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
5 août 2008 à 17:19
5 août 2008 à 17:19
Merci jipicy pour ta réponse ça marche bien.
Par contre, avec ma "novicitude" peux tu me dire
1. Pourquoi j'ai une erreur du type unexpected end of Line en ligne 33 dans le code suivant
#! /bin/sh
DATE=$(date '+%d-%m-%Y-%H:%M:%S')
PROGRAM="/opt/kde3/bin/konqueror"
DIALOG=${DIALOG=dialog}
FILE=`$DIALOG --stdout --title "Choose a file" --fselect /data/home/apn0104/ 14 48`
case $? in
0)
echo "\"$FILE\" selected";;
1)
echo "Appuyé sur Annuler.";;
255)
echo "Fenêtre fermée.";;
esac
if [ "$FILE" != "" ]; then
gnuplot <<EOF
set term postscript landscape
set output 'SPND_SU_PS_${DATE}.ps'
set xlabel 'Time'
set ylabel 'Flux'
set grid
set nokey
set title 'SPND Response'
plot "${FILE##*/}" using 1:2 with lines
EOF
fi
2. est il possible que le fichier selectionné à la souris s'inscrive directement dans la boite de dialogue ou lieu d'être obligé de le taper.
Nono
Par contre, avec ma "novicitude" peux tu me dire
1. Pourquoi j'ai une erreur du type unexpected end of Line en ligne 33 dans le code suivant
#! /bin/sh
DATE=$(date '+%d-%m-%Y-%H:%M:%S')
PROGRAM="/opt/kde3/bin/konqueror"
DIALOG=${DIALOG=dialog}
FILE=`$DIALOG --stdout --title "Choose a file" --fselect /data/home/apn0104/ 14 48`
case $? in
0)
echo "\"$FILE\" selected";;
1)
echo "Appuyé sur Annuler.";;
255)
echo "Fenêtre fermée.";;
esac
if [ "$FILE" != "" ]; then
gnuplot <<EOF
set term postscript landscape
set output 'SPND_SU_PS_${DATE}.ps'
set xlabel 'Time'
set ylabel 'Flux'
set grid
set nokey
set title 'SPND Response'
plot "${FILE##*/}" using 1:2 with lines
EOF
fi
2. est il possible que le fichier selectionné à la souris s'inscrive directement dans la boite de dialogue ou lieu d'être obligé de le taper.
Nono
jipicy
Messages postés
40842
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 898
>
nonoEW
Messages postés
28
Date d'inscription
samedi 2 août 2008
Statut
Membre
Dernière intervention
18 avril 2011
5 août 2008 à 17:25
5 août 2008 à 17:25
1 - Déjà je n'ai que 31 lignes môa ;-(
2 - Extrait du man "dialog" :
2 - Extrait du man "dialog" :
--fselect chemin-de-fichier hauteur largeur Le dialogue de sélection de fichier affiche une zone de texte dans laquelle vous pouvez écrire un nom de fichier (ou de réper- toire), et au-dessus deux zones pour les répertoires et les noms de fichier. Le chemin-de-fichier peut être un chemin complet, auquel cas les zones fichiers et répertoires afficheront le contenu du chemin et la zone texte contient le nom du fichier présélectionné. Utilisez la tabulation ou les touches fléchées pour vous déplacer entre les zones. Dans la zone répertoires ou fichiers, utilisez les touches monter/descendre pour dérouler la sélec- tion. Utilisez la barre d'espace pour copier la sélection dans la zone de texte.;-))
nonoEW
Messages postés
28
Date d'inscription
samedi 2 août 2008
Statut
Membre
Dernière intervention
18 avril 2011
3
4 août 2008 à 17:10
4 août 2008 à 17:10
Malheureseument non, je n'ai pas de listing à dispo, je pourrais t'en faire un à la mano mais le matos dont j'ai besoin n'est pas. Je travaille un peu en aveugle en fait...
Nono
Nono
bonjour, je me suis tombé sur cette forum très sympa.
Je voudrais poser une question:
quand on fait 'u 1:2', dans une script de gnuplot, on peux
changer le valeur de la colone 1 par '($1/3600)', par exemple.
Mais dans un script de shell, $1 ne marche plus.
Est-ce que vous avez comment faire dans ce cas là?
Merci en avance.
Je voudrais poser une question:
quand on fait 'u 1:2', dans une script de gnuplot, on peux
changer le valeur de la colone 1 par '($1/3600)', par exemple.
Mais dans un script de shell, $1 ne marche plus.
Est-ce que vous avez comment faire dans ce cas là?
Merci en avance.
jipicy
Messages postés
40842
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 898
>
jingmei
7 déc. 2009 à 20:09
7 déc. 2009 à 20:09
Salut,
Il faut entourer l'expression de quote-doubles ( "($1/3600)" ) sans quoi la variable "$1" n'est pas interprétée.
Il faut entourer l'expression de quote-doubles ( "($1/3600)" ) sans quoi la variable "$1" n'est pas interprétée.
jingmei
>
jipicy
Messages postés
40842
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
7 déc. 2009 à 21:11
7 déc. 2009 à 21:11
merci, mais je l'ai esseyé, ça ne marche pas.
jingmei
>
jipicy
Messages postés
40842
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
7 déc. 2009 à 21:43
7 déc. 2009 à 21:43
ça march!
avec
u (\$1/3600):2
merci bcp!!!!
avec
u (\$1/3600):2
merci bcp!!!!
jipicy
Messages postés
40842
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 898
>
jingmei
7 déc. 2009 à 21:55
7 déc. 2009 à 21:55
Ben merci à toi surtout ;-))
jipicy
Messages postés
40842
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 898
4 août 2008 à 16:32
4 août 2008 à 16:32
Euh... quelques infos supplémentaires ne seraient pas de trop.
Ils arrivent comment ces fichiers dans le répertoire ? A quelle fréquence ? Quotidienne ? hebdo ? Il y en a combien en général ensemble ? etc.
Ils arrivent comment ces fichiers dans le répertoire ? A quelle fréquence ? Quotidienne ? hebdo ? Il y en a combien en général ensemble ? etc.
nonoEW
Messages postés
28
Date d'inscription
samedi 2 août 2008
Statut
Membre
Dernière intervention
18 avril 2011
3
4 août 2008 à 16:41
4 août 2008 à 16:41
Ben en fait c'est des résultats de tests périodiques. Les fichiers sont crées après appui sur un bouton d'une appli
Je pense que la périodicité du truc devrait être de 1 fichier toute les semaines un peu près à terme (ce n'est pas définis, j'y travaille). Mais pour être sûr disont qu'il est possible d'avoir un enregistrement toutes les 10 minutes pas moins.
Nono
Je pense que la périodicité du truc devrait être de 1 fichier toute les semaines un peu près à terme (ce n'est pas définis, j'y travaille). Mais pour être sûr disont qu'il est possible d'avoir un enregistrement toutes les 10 minutes pas moins.
Nono