| 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...
JP - Éleveur de pingouins -
Faites un geste pour l'environnement, fermez vos fenêtres et adoptez un manchot. Répondre à jipicy | 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 Répondre à nonoEW |
| 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 Répondre à nonoEW | plot "${FILE##*/}";-))
JP - Éleveur de pingouins -
Faites un geste pour l'environnement, fermez vos fenêtres et adoptez un manchot. Répondre à jipicy | 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 Répondre à nonoEW | 1 - Déjà je n'ai que 31 lignes môa ;-(
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.
;-))
JP - Éleveur de pingouins -
Faites un geste pour l'environnement, fermez vos fenêtres et adoptez un manchot. Répondre à jipicy | Désolé, je craque un peu sur le shell c'est tout nouveau du coup j'oublie que ya le man pour aider...
Sinon, ouai 31 lignes peut être mais je ne vois pas pourquoi y a une erreur du coup j'ai l'impression que mon test ne fonctionne pas
Nono Répondre à nonoEW | Rajoute "set -xv" après la ligne shebang (#! /bin/sh) pour rendre ton script verbeux...
JP - Éleveur de pingouins -
Faites un geste pour l'environnement, fermez vos fenêtres et adoptez un manchot. Répondre à jipicy | Merci pour la façon de débugger.
Sinon, l'instruction dialogue ne me plait pas pour selectionner mon fichier de point, j'ai décidé d'utiliser
kdialog --openfilename $HOME "*.log"
pour selectionner mes fichiers de points... Je trouve ça plus propre.
PAr contre je ne parviens pas à récupérer le fichier sélectionner. Cela ne se passe pas comme avec dialog ?
Nono Répondre à nonoEW | Utilises alors "Xdialog". C'est la même syntaxe que "dialog" mais en environnement graphique...
Sinon, concernant kdialog, il devrait normalement te retourner comme avec dialog le nom du fichier précédé de son chemin, et la syntaxe "${var##*/}" devrait être opérationnelle aussi ;-\
PS. T'as pu résoudre ton problème d'erreur ?
JP - Éleveur de pingouins -
Faites un geste pour l'environnement, fermez vos fenêtres et adoptez un manchot. Répondre à jipicy | Oui effectivement il devrait normalement retourner la même chose, le truc c'est qu'avec kdialog, je ne peux pas écrire
FILE=kdialog --getopenfilename $HOME "*.log"
car j'ai une erreur direct et je n'arrive pas à renvoyer la varaible sélectionnée
Sinon, je n'utilise pas Xdialog car cela ne fonctionne pas avec mon environnement de travail d'où kdialog qui me parait bien exepté pour ce petit problème...
Sinon, je n'ai pas "encore" resolu mon erreur mais en naviguant sur d'autre forum je m'aperçois que c'est courant comme erreur avec les structures conditions donc j'investigue encore
Nono Répondre à nonoEW | Essaie plutôt comme ça : FILE=$(kdialog --getopenfilename $HOME "*.log")
JP - Éleveur de pingouins -
Faites un geste pour l'environnement, fermez vos fenêtres et adoptez un manchot. Répondre à jipicy |
| Ok, ça marche !!!
Par contre ma structure condition me sort toujours l'erreur.
C'est pas bon comme ça ? 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
ça me sort tjrs "syntax error line 33 : unexpected end of line"
PS: la ligne 33 étant la ligne après le fi
Nono Répondre à nonoEW |
| if ( "$FILE" != "" )
Non faut des crochets et pas des accolades :
if [ "$FILE" != "" ]
JP - Éleveur de pingouins -
Faites un geste pour l'environnement, fermez vos fenêtres et adoptez un manchot. Répondre à jipicy |
| Et non, même topo, l'execution s'arrête à gnuplot << EOF avec la même erreur que je t'ai citée tout à l'heure...
J'ai essayé de mettre les instructions de tracé avec gnuplot dans le case 0) mais j'ai aussi la même erreur!
J4ai un peu de mal à capter le pb là
Nono Répondre à nonoEW |
| Le "EOF" final est bien en début de ligne, sans espace ni avant ni après et bien tout seul sur la ligne ?
JP - Éleveur de pingouins -
Faites un geste pour l'environnement, fermez vos fenêtres et adoptez un manchot. Répondre à jipicy |
| Ah, non boulette... C'était ça l'erreur. Maintenant ça marche bien. Mille Merci !
Mais pourquoi doit on le mettre en début de ligne comme cela ?
Nono Répondre à nonoEW |
| Ça faudra demander au(x) développeur(s) qui a (ont) conçu le code ;-))
JP - Éleveur de pingouins -
Faites un geste pour l'environnement, fermez vos fenêtres et adoptez un manchot. Répondre à jipicy |
|
|
|
|
|
|
|
|
|
|