Scaramouche Posté(e) le 21 janvier 2005 Partager Posté(e) le 21 janvier 2005 Amis pingouins bonsoir, dans le cadre du boulot je me retrouve à faire un travail fastidieux sous linux pour traiter des données expérimentales avant analyse. et je me demandais si une macro pourrait résoudre mes malheurs (on en fait déjà des petites pour se simplifier certaines taches mais je ne sais pas si celle que j'envisage est possible). je m'explique : les données que l'on récupère proviennent de neufs détecteurs, numérotés de 0 à 8 (ça a son importance) et sont stockées dans un fichier que nous nommerons par la suite expname.dat. Plusieures acquisions peuvent êtres mises à la suite les unes des autres dans le même fichier, chacune constituant ce que j'appelerais plus tard un scan. Un programme, répondant au doux nom de id31sum, est mis à notre disposition pour compiler les données enregistrées par tous les détecteurs, et entre tous les scans. On obtient en sortie deux fichiers de données que je normerais par la suite expname.gsa et expname.epf . Pour le lancer ce pogramme je dois donc taper une bête ligne de commande commençant par le nom du programme et celui du fichier (logique jusque là)et incluant un certain nombre de paramètres : le binning (cherchez pas ce que c'est mais c'est utile) , le premier scan et le dernier scan à prendre en compte et finalement les détecteurs à exclure de la compilation (utile quand certains merdent). Or, là où les Dieux de la science sont cruels, c'est que pour ce que j'ai à faire on veut les données scan par scan et détecteur par détecteur ... ce qui nous amène donc à écrire une ligne de commande comme la suivante, dans le cas d'un compilation du premier scan pour le détecteur 0 : id31sum expname.dat 0.002 1 1 ed=1,2,3,4,5,6,7,8 gsas Ensuite je dois renommer les deux fichiers que j'ai obtenu en ajoutant au nom les caractéristiques de scan et du détecteur ... rien de très compliqué : mv expname.gsa expname002_S1_D0.gsa mv expname.epf expname002_S1_D0.epf le problème est que je vais me retrouver ce week-end à faire ça pour 150 scans ce qui donne environ 4000 lignes de commandes (je ne les re-tappent pas en entier mais bon... )... je l'ai déjà fait une fois et ça m'avait demandé 2 jours sans compter que j'ai quasiment eu des ampoules aux doigts ... et j'aurai à le refaire à l'avenir.... donc (on arrive enfin au coeur du sujet) est-ce que je ne pourrais pas écrire une petite macro qui me demanderait en entrée au minimum le nom du fichier expname.dat, le nom du scan à traiter et me ferait automatiquement le lancement du programme + le renommage des deux fichier et ceux pour tous les détecteurs par un système de boucle avec compteur.... (et le café aussi vu que je serai quand même un peu crevée ) c'est possible ou alors est-ce que je rêve... j'ai posté ici mais ce sujet à peut-être plus sa place dans le forum programmation... en fait je n'en sais rien mais vu que je pensais à une macro.. c'était linux pour moi. s'il faut faire un programme pour arriver à mes fins je ne suis pas du tout compétente donc a priori je ne pencherai pas là-dessus. dernière précision (je ne sais pas si ça a son importance) : on bosse sur une bonne vieille Suse 7.2 (je peux vous retrouver le kernel si besoin est.. j'ai oublié) et là j'aurai accès à distance au réseau sur lequel je vais travailler (ne me demandez pas comment, tout ce que je sais c'est une histoire de ssh... ) merci d'avance pour votre aide, en espérant que vous n'avez pas trop mal au crâne suite à la lecture de ce post P.S. : s'i vous plait n'oubliez pas que mon niveau linux est assez (voire très ) bas donc merci d'avance de vulgariser au maximum Lien vers le commentaire Partager sur d’autres sites More sharing options...
-rem- Posté(e) le 21 janvier 2005 Partager Posté(e) le 21 janvier 2005 :coucou: Mlle Scara. C'est tout a fait possible, et si demain personne n'a formuler de ptite manip avec le shell, je te le ferai en perl et je t'enverrai le programme, mais ce soir je doute d'avoir le temps, j'ai du monde... J4ai ptet 2 minutes pour y regarder. Est ce que ton nombres d'arguments est variables stp ? ( ps ca serait mieux en prog, je t'envoie la bas ) Lien vers le commentaire Partager sur d’autres sites More sharing options...
Scaramouche Posté(e) le 21 janvier 2005 Auteur Partager Posté(e) le 21 janvier 2005 qu'appelles-tu le nombre d'arguments ? merci sinon (mon bonjour ne correspond plus maintenant que ça a changé de section ) Lien vers le commentaire Partager sur d’autres sites More sharing options...
-rem- Posté(e) le 21 janvier 2005 Partager Posté(e) le 21 janvier 2005 De linux a logiciel, tout le monde sait que linux est mon ami. Et demain il t'ecrira en personne le script Ce que j'appelle le nombre d'argument variable, c'est ca : id31sum expname.dat 0.002 1 1 ed=1,2,3,4,5,6,7,8 gsas id31sum expname.dat 0.002 1 1 ed=1,2 gsas id31sum expname.dat 0.002 1 1 ed=1,2,3,4,5 gsas Mais je viens d'y repenser , oublies ce que je t'ai dit, je ferais une fonction aux nombres d'arguments variables de toutes façons, ca sera plus "professionnel". Après tout, linux est mon ami, enfin, la c'est le C, mais comme j'en manie à longueur de journée et que mon ami n'est que C... Lien vers le commentaire Partager sur d’autres sites More sharing options...
Scaramouche Posté(e) le 21 janvier 2005 Auteur Partager Posté(e) le 21 janvier 2005 euh... je comprend pas tout mais effectivement le nombre d'argument peut varier (de 1 a 8 (on ne va pas exclure tous les détecteurs ) ) mais dans ce cas précis je voudrais qu'il me passe tous les détecteurs les uns après les autres, ne faisant le "renommage" des fichiers automatiquement ça me fait penser à un autre script qui pourrait être sympa () dans lequel en entrée je lui donne le nom du fichier, le binning, scan initial, le scan final et les détecteurs à exclure (dont le nombre peut varier de 0 à ... et qui me ferait la compile scan par scan (en associant ensemble tous les détecteurs non exclus donc)... mais c'est une autre histoire, le travail étant moins fastidieux dans ce cas.... edit : je raconte des conneries pour le second script... il existe déjà et s'appelle id31sumall... j'ai la mémoire un peu courte... le truc chiant c'est qu'il nous sort des noms de fichiers pas pratiques et on renomme tout à la main... bon, je vais aller me coucher je crois, ça évitera que je raconte d'autres bêtises.... Lien vers le commentaire Partager sur d’autres sites More sharing options...
theocrite Posté(e) le 22 janvier 2005 Partager Posté(e) le 22 janvier 2005 Essai : #! /bin/sh # Date : 21/12/2004 # Author : theocrite # Version : 0.5 # Description : simplifier la vie de Scaralamouche # Licence : Under GNU General Public Licence (see http://www.gnu.org/copyleft/gpl.html) NAME=id31sumdbdsbs # 4 arguments minimum if [ -z $4 ] then echo "Usage : $NAME.sh binning filename scan_start sca_end" exit; fi binning=$1 filename=$2 scan_start=$3 scan_end=$4 xcludeddetectors[0]=1,2,3,4,5,6,7,8 xcludeddetectors[1]=0,2,3,4,5,6,7,8 xcludeddetectors[2]=0,1,3,4,5,6,7,8 xcludeddetectors[3]=0,1,2,4,5,6,7,8 xcludeddetectors[4]=0,1,2,3,5,6,7,8 xcludeddetectors[5]=0,1,2,3,4,6,7,8 xcludeddetectors[6]=0,1,2,3,4,5,7,8 xcludeddetectors[7]=0,1,2,3,4,5,6,8 xcludeddetectors[8]=0,1,2,3,4,5,6,7 for detector in `seq 0 8`; do for scan_num in `seq $scan_start $scan_end`; do id31sum $filename.dat $binning $scan_num $scan_num ed=${xcludeddetectors[$detector]} gsas mv $filename.gsa $NAME$(echo $binning | tr -d .)_S$scan_num``_D$detector.gsa mv $filename.epf $NAME$(echo $binning | tr -d .)_S$scan_num``_D$detector.epf done; done; ~ ~ ~ Tu copies ça dans un fichier nommé id31sumdbdsbs.sh dans un répertoire dédié, tu n'oublies pas de te donner les droits d'éxécution (chmod +x id31sumdbdsbs.sh) et tu le lances. Ce qui donne pour ./id31sumdbdsbs 0.02 supernom 5 9 id31sum supernom.dat 0.02 5 5 ed=1,2,3,4,5,6,7,8 gsas mv supernom.gsa id31sumdbdsbs002_S5_D0.gsa mv supernom.epf id31sumdbdsbs002_S5_D0.epf id31sum supernom.dat 0.02 6 6 ed=1,2,3,4,5,6,7,8 gsas mv supernom.gsa id31sumdbdsbs002_S6_D0.gsa mv supernom.epf id31sumdbdsbs002_S6_D0.epf id31sum supernom.dat 0.02 7 7 ed=1,2,3,4,5,6,7,8 gsas mv supernom.gsa id31sumdbdsbs002_S7_D0.gsa mv supernom.epf id31sumdbdsbs002_S7_D0.epf id31sum supernom.dat 0.02 8 8 ed=1,2,3,4,5,6,7,8 gsas mv supernom.gsa id31sumdbdsbs002_S8_D0.gsa mv supernom.epf id31sumdbdsbs002_S8_D0.epf id31sum supernom.dat 0.02 9 9 ed=1,2,3,4,5,6,7,8 gsas mv supernom.gsa id31sumdbdsbs002_S9_D0.gsa mv supernom.epf id31sumdbdsbs002_S9_D0.epf id31sum supernom.dat 0.02 5 5 ed=0,2,3,4,5,6,7,8 gsas mv supernom.gsa id31sumdbdsbs002_S5_D1.gsa mv supernom.epf id31sumdbdsbs002_S5_D1.epf id31sum supernom.dat 0.02 6 6 ed=0,2,3,4,5,6,7,8 gsas mv supernom.gsa id31sumdbdsbs002_S6_D1.gsa mv supernom.epf id31sumdbdsbs002_S6_D1.epf id31sum supernom.dat 0.02 7 7 ed=0,2,3,4,5,6,7,8 gsas mv supernom.gsa id31sumdbdsbs002_S7_D1.gsa mv supernom.epf id31sumdbdsbs002_S7_D1.epf id31sum supernom.dat 0.02 8 8 ed=0,2,3,4,5,6,7,8 gsas mv supernom.gsa id31sumdbdsbs002_S8_D1.gsa mv supernom.epf id31sumdbdsbs002_S8_D1.epf id31sum supernom.dat 0.02 9 9 ed=0,2,3,4,5,6,7,8 gsas mv supernom.gsa id31sumdbdsbs002_S9_D1.gsa mv supernom.epf id31sumdbdsbs002_S9_D1.epf id31sum supernom.dat 0.02 5 5 ed=0,1,3,4,5,6,7,8 gsas mv supernom.gsa id31sumdbdsbs002_S5_D2.gsa mv supernom.epf id31sumdbdsbs002_S5_D2.epf id31sum supernom.dat 0.02 6 6 ed=0,1,3,4,5,6,7,8 gsas mv supernom.gsa id31sumdbdsbs002_S6_D2.gsa mv supernom.epf id31sumdbdsbs002_S6_D2.epf id31sum supernom.dat 0.02 7 7 ed=0,1,3,4,5,6,7,8 gsas mv supernom.gsa id31sumdbdsbs002_S7_D2.gsa mv supernom.epf id31sumdbdsbs002_S7_D2.epf id31sum supernom.dat 0.02 8 8 ed=0,1,3,4,5,6,7,8 gsas mv supernom.gsa id31sumdbdsbs002_S8_D2.gsa mv supernom.epf id31sumdbdsbs002_S8_D2.epf [...] id31sum supernom.dat 0.02 6 6 ed=0,1,2,3,4,5,7,8 gsas mv supernom.gsa id31sumdbdsbs002_S6_D6.gsa mv supernom.epf id31sumdbdsbs002_S6_D6.epf id31sum supernom.dat 0.02 7 7 ed=0,1,2,3,4,5,7,8 gsas mv supernom.gsa id31sumdbdsbs002_S7_D6.gsa mv supernom.epf id31sumdbdsbs002_S7_D6.epf id31sum supernom.dat 0.02 8 8 ed=0,1,2,3,4,5,7,8 gsas mv supernom.gsa id31sumdbdsbs002_S8_D6.gsa mv supernom.epf id31sumdbdsbs002_S8_D6.epf id31sum supernom.dat 0.02 9 9 ed=0,1,2,3,4,5,7,8 gsas mv supernom.gsa id31sumdbdsbs002_S9_D6.gsa mv supernom.epf id31sumdbdsbs002_S9_D6.epf id31sum supernom.dat 0.02 5 5 ed=0,1,2,3,4,5,6,8 gsas mv supernom.gsa id31sumdbdsbs002_S5_D7.gsa mv supernom.epf id31sumdbdsbs002_S5_D7.epf id31sum supernom.dat 0.02 6 6 ed=0,1,2,3,4,5,6,8 gsas mv supernom.gsa id31sumdbdsbs002_S6_D7.gsa mv supernom.epf id31sumdbdsbs002_S6_D7.epf id31sum supernom.dat 0.02 7 7 ed=0,1,2,3,4,5,6,8 gsas mv supernom.gsa id31sumdbdsbs002_S7_D7.gsa mv supernom.epf id31sumdbdsbs002_S7_D7.epf id31sum supernom.dat 0.02 8 8 ed=0,1,2,3,4,5,6,8 gsas mv supernom.gsa id31sumdbdsbs002_S8_D7.gsa mv supernom.epf id31sumdbdsbs002_S8_D7.epf id31sum supernom.dat 0.02 9 9 ed=0,1,2,3,4,5,6,8 gsas mv supernom.gsa id31sumdbdsbs002_S9_D7.gsa mv supernom.epf id31sumdbdsbs002_S9_D7.epf id31sum supernom.dat 0.02 5 5 ed=0,1,2,3,4,5,6,7 gsas mv supernom.gsa id31sumdbdsbs002_S5_D8.gsa mv supernom.epf id31sumdbdsbs002_S5_D8.epf id31sum supernom.dat 0.02 6 6 ed=0,1,2,3,4,5,6,7 gsas mv supernom.gsa id31sumdbdsbs002_S6_D8.gsa mv supernom.epf id31sumdbdsbs002_S6_D8.epf id31sum supernom.dat 0.02 7 7 ed=0,1,2,3,4,5,6,7 gsas mv supernom.gsa id31sumdbdsbs002_S7_D8.gsa mv supernom.epf id31sumdbdsbs002_S7_D8.epf id31sum supernom.dat 0.02 8 8 ed=0,1,2,3,4,5,6,7 gsas mv supernom.gsa id31sumdbdsbs002_S8_D8.gsa mv supernom.epf id31sumdbdsbs002_S8_D8.epf id31sum supernom.dat 0.02 9 9 ed=0,1,2,3,4,5,6,7 gsas mv supernom.gsa id31sumdbdsbs002_S9_D8.gsa mv supernom.epf id31sumdbdsbs002_S9_D8.epf C'est bon ? Lien vers le commentaire Partager sur d’autres sites More sharing options...
Scaramouche Posté(e) le 22 janvier 2005 Auteur Partager Posté(e) le 22 janvier 2005 je vais regarder ça en détail mais ça a l'air bon theo par contre je ne sais pas si je peux "installer" un programmes comme ça sur le réseau en question (une macro pas de problème...mais ça je sais pas)... j'en parlerai aux informaticiens avant Lien vers le commentaire Partager sur d’autres sites More sharing options...
theocrite Posté(e) le 22 janvier 2005 Partager Posté(e) le 22 janvier 2005 Il n'y a rien à installer, tu as juste à lancer le script (c'est la même chose qu'une macro), ce qui fera la même chose que si tu exécutait les lignes de commande à la main. Donc pas de problèmes Lien vers le commentaire Partager sur d’autres sites More sharing options...
Scaramouche Posté(e) le 22 janvier 2005 Auteur Partager Posté(e) le 22 janvier 2005 cool ça alors bon, il va falloir que je teste ça et compare les fichiers (j'ai déjà oublié la commande... c'est quoi ?) Lien vers le commentaire Partager sur d’autres sites More sharing options...
theocrite Posté(e) le 22 janvier 2005 Partager Posté(e) le 22 janvier 2005 Soit tu compare les deux dossiers diff ./alamain/ ./auscript/ Soit tu fais un diff entre les fichiers qui sont dans les dossiers for file in `ls alamain/*`;do diff alamain/$file auscript/$file;done Lien vers le commentaire Partager sur d’autres sites More sharing options...
-rem- Posté(e) le 22 janvier 2005 Partager Posté(e) le 22 janvier 2005 Bon, j'ai l'impression que theo a fait le travail pour moi, enfin, j'aurais pas fait avec les memes outils, mais impec, ca me permettra de me coucher la conscience tranquille.. bonne nuit mes amis Lien vers le commentaire Partager sur d’autres sites More sharing options...
Scaramouche Posté(e) le 22 janvier 2005 Auteur Partager Posté(e) le 22 janvier 2005 Soit tu compare les deux dossiers diff ./alamain/ ./auscript/ Soit tu fais un diff entre les fichiers qui sont dans les dossiers for file in `ls alamain/*`;do diff alamain/$file auscript/$file;done encore merci theo pour le second je ne vois pas mais la première méthode me suffit bonne nuit Edit : bonne nuit aussi rem Lien vers le commentaire Partager sur d’autres sites More sharing options...
theocrite Posté(e) le 22 janvier 2005 Partager Posté(e) le 22 janvier 2005 Petite confusion entre $filename et $NAME. Les deux dernières lignes de la boucle : mv $filename.gsa $NAME$(echo $binning | tr -d .)_S$scan_num``_D$detector.gsa mv $filename.epf $NAME$(echo $binning | tr -d .)_S$scan_num``_D$detector.epf devraient être : mv $filename.gsa $filename$(echo $binning | tr -d .)_S$scan_num``_D$detector.gsa mv $filename.epf $filename$(echo $binning | tr -d .)_S$scan_num``_D$detector.epf D'ailleurs on peut même faire un truc un peu plus propre en enlevant les ``. mv $filename.gsa $filename$(echo $binning | tr -d .)_S${scan_num}_D$detector.gsa mv $filename.epf $filename$(echo $binning | tr -d .)_S${scan_num}_D$detector.epf Et aussi, le sript enlève juste le '.', si tu voulais juste une multiplication par 1000 (sans les '0' préfixés), c'est ça : mv $filename.gsa $filename$(($binning*1000))_S${scan_num}_D$detector.gsa mv $filename.epf $filename$(($binning*1000))_S${scan_num}_D$detector.epf Lien vers le commentaire Partager sur d’autres sites More sharing options...
Scaramouche Posté(e) le 22 janvier 2005 Auteur Partager Posté(e) le 22 janvier 2005 effectivement... j'avais pas noté que le nom des fichiers de sortie n'étaient pas bon.... pour le binning, le problème est qu'il me faut bien les zéros avant... vu que ça indique si c'était un chiffre sur les dixiemes, centièmes... arf... je vois pas comment nous en sortir sur ce coup là car je pense que le point dû au nombre du binning va nous ennuyer dans le nom du fichier.... (c'est pas très propre et on bosse sous win après.. ) a priori on aura toujours une valeur inférieure à 1 (et supérieure à zéro) ... donc doit y avoir un truc à trouver genre "si binning strictement inférieur à 1 et supérieur ou égale à 0.1 on ajoute rien à son multiple par 1000", "si binning strictement inférieur à 0.1 et supérieur ou égale à 0.01 on ajoute un zéro avant son multiple par 1000" et si "si binning strictement inférieur à 0.01 et supérieur ou égale à 0.001 on ajoute deux zéro avant son multiple par 1000" (je ne pense pas qu'on descende en dessous de 0.001... nos valeurs habituelles sont 0.002 , 0.005 et 0.01) c'est marrant comme un détail comme ça peut être chiant... parce que je suppose que ça va pas mal compliquer le script.... (ça ne m'empèchera pas de pouvoir tester le script par rapport à ce que je vais faire à la main... ça me pemettre de le valider ) (au fait, et pour rajouter un "_" entre le nom et le binning, j'ai justeàl'insérédans la ligne ou c'est plus subtil que ça ? (oui... j'y tiens à ce "_" ) donc tu peux remettre un coup le code modifié dans un prochain message (ça urge pas non plus ) ... je serai sûr de ne pas faire de conneries merci encore theo (et bosse bien !) Edit : quelques modifs j'avais oublié des zéros Lien vers le commentaire Partager sur d’autres sites More sharing options...
theocrite Posté(e) le 22 janvier 2005 Partager Posté(e) le 22 janvier 2005 je suppose que ça va pas mal compliquer le script.... Non pas du tout, c'est ce que fait la première version. tr le fait tout seul. tr remplace un caractère par un autre. Dans ce cas là, tr -d supprime un caractère (qui en l'occurrence est le point). Dans que tu précise une partie décimale de trois chiffres (pour tes valeurs usuelles : 0.002 , 0.005 et 0.010), ça fonctionnera. Tout ce qui est utilisé dans un script bash est soit une commande bash, soit une commande linux. Donc pour des infos sur une commande, tu peux faire man la commande (man tr, man mv, man seq...) ou alors c'est dans l'aide de bash : man bash. Finalement, ça donne ça : D'ailleurs on peut même faire un truc un peu plus propre en enlevant les ``. mv $filename.gsa $filename$(echo $binning | tr -d .)_S${scan_num}_D$detector.gsa mv $filename.epf $filename$(echo $binning | tr -d .)_S${scan_num}_D$detector.epf et tu peux tout à fait insérer un underscore au milleu (pas apès les '$' qui préfixent les noms des variables) mv $filename.gsa $filename_$(echo $binning | tr -d .)_S${scan_num}_D$detector.gsa mv $filename.epf $filename_$(echo $binning | tr -d .)_S${scan_num}_D$detector.epf Lien vers le commentaire Partager sur d’autres sites More sharing options...
Scaramouche Posté(e) le 22 janvier 2005 Auteur Partager Posté(e) le 22 janvier 2005 t'en profite pour me donner des cours de programmation en douce c'est cool ça n'empèche le tr mais est-ce que ça donne 0002 ou 002 pour la valeur 0.002 ? au vu du premier post ça donne 0002 ... et ç me va pas ... y'a pas moyen d'enlever juste un zéro à ça ? Lien vers le commentaire Partager sur d’autres sites More sharing options...
theocrite Posté(e) le 22 janvier 2005 Partager Posté(e) le 22 janvier 2005 Si, tu remplaces $binning par $(($binning*10)), par contre, il faut que ton bash utilise les points pour séparer les chiffres entiers et décimaux et pas les virgules. Lien vers le commentaire Partager sur d’autres sites More sharing options...
Scaramouche Posté(e) le 22 janvier 2005 Auteur Partager Posté(e) le 22 janvier 2005 ce sont bien des points pour séparer bon... on va y arriver encore Lien vers le commentaire Partager sur d’autres sites More sharing options...
theocrite Posté(e) le 22 janvier 2005 Partager Posté(e) le 22 janvier 2005 Pas sûr, ça dépend du bash. Pour tester, essaye $((0.1+1)) $((0,1+2)) Enfin, normalement aucune raison que ça ne soit pas ça sur une machine UK, mais ne sait-on jamais. C'est tellment désagréable de perdre du temps pour cette erreur (ça ce voit que ça m'est arrivé ?) PS : Tu vois que programmation c'est bien Lien vers le commentaire Partager sur d’autres sites More sharing options...
Scaramouche Posté(e) le 22 janvier 2005 Auteur Partager Posté(e) le 22 janvier 2005 déjà je travaille sur une machine qui est en France (via un protocole SSH)... mais c'est un peu l'Angleterre là bas si tu vois ce que je veux dire (avec les claviers qwerty et tout et tout) je me dis que si quand je fais une ligne de commande je rentre un nombre décimale avec un point ... le bash doit être comme ça non ? en gros j'ai la flemme de me reloggé.. je viens juste de finir pour aujourd'hui... (je le ferai demain pour être sûr...) [HS]mais oui c'est bien ici ... (mais c'est pas là que j'avais posté à la base ) [/HS] Lien vers le commentaire Partager sur d’autres sites More sharing options...
theocrite Posté(e) le 22 janvier 2005 Partager Posté(e) le 22 janvier 2005 C'est pas sûr, si tu fais truc 1.0, c'est truc qui interprête le point et pas le bash. On verra bien. Lien vers le commentaire Partager sur d’autres sites More sharing options...
Scaramouche Posté(e) le 23 janvier 2005 Auteur Partager Posté(e) le 23 janvier 2005 bon, je me suis loggée... question conne il faut enlever les $ quand je tape le code que tu m'as donné ? sans le $ : il me dit dans les deux cas "illegal variable name" et avec : il me dit dans les deux cas "0.1+1 : command not found" "0,1+1 : command not found" Lien vers le commentaire Partager sur d’autres sites More sharing options...
theocrite Posté(e) le 23 janvier 2005 Partager Posté(e) le 23 janvier 2005 Oui, c'est pour le script. Avec un echo devant ? echo $((..+..)) Lien vers le commentaire Partager sur d’autres sites More sharing options...
Scaramouche Posté(e) le 23 janvier 2005 Auteur Partager Posté(e) le 23 janvier 2005 en faisant : echo $((0.1+1)) ou l'autre ça donne : "command not found" Lien vers le commentaire Partager sur d’autres sites More sharing options...
theocrite Posté(e) le 23 janvier 2005 Partager Posté(e) le 23 janvier 2005 Il va falloir retourner dans la section Linusque export | grep SHELL ? Voila ce que ça me donne moi : theo@fermat:~$ echo $((0.1+1)) -bash: 0.1+1: syntax error in expression (error token is ".1+1") theo@fermat:~$ echo $((0,1+1)) 2 Lien vers le commentaire Partager sur d’autres sites More sharing options...
Messages recommandés
Archivé
Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.