problème avec la commande cut

problème avec la commande cut - Shell/Batch - Programmation

Marsh Posté le 02-06-2008 à 10:02:17    

Bonjour,
dans le répertoire mami/tot/jpg j'ai 6 fichiers(A,B,c,d,e,f) et dans le fichier d  
voila ce que j'ai par exemple ce genre de lignes plusieurs fois:
02C8020060901148977I081020000
02C80200609061660002700070603
02C80200609083520002822080610
02C80200609100531003171010279
 
 
je veux recupérer dans 1variable var1 (les elements à parir du 6ème element au 13 element) qui signifie l'année et le mois sachant que  
var1=20060901
 
minute=`date +%M`
heure=`date +%H`
jour=`date +%d`
mois=`date +%B`
an=`date +%Y`
 
 
if [ -e /seppp/mmam/cedric/$an/$mois/mon_fichier ]
then
 
var1=$(cat  mon_fichier | cut -c 6-10 mon fichier)
 
echo " ${var1}  " | mail -s "Information sur ${var} du $jour $mois $an" mamamamamma@chut.fr
fi
aidez moi svp je ne sais pas prquoi ça ne marche pas
quand j'exécute j'ai rien comme message.

Reply

Marsh Posté le 02-06-2008 à 10:02:17   

Reply

Marsh Posté le 02-06-2008 à 11:46:11    

echo " ${var1}  " | mail -s "Information sur ${var} du $jour $mois $an" mamamamamma@chut.fr

C'est $var ou $var1 ?
Il manque l'underscore dans "mon_fichier" sur la ligne du cut.
Est-ce que echo ... sans mail marche bien ?
Par sécurité, il est recomandé de mettre des accolades autour des noms de variables, tels que ${an}, ${jour}, etc.
Dans un echo, au lieu de echo "toto ${titi} tutu", je fais plutôt echo "toto "${titi}" tutu".

Message cité 1 fois
Message édité par olivthill le 02-06-2008 à 11:49:44
Reply

Marsh Posté le 04-06-2008 à 15:31:14    

merci beaucoup ça marche

Reply

Marsh Posté le 07-06-2008 à 11:29:15    

olivthill a écrit :

Par sécurité, il est recomandé de mettre des accolades autour des noms de variables, tels que ${an}, ${jour}, etc.


En fait, cela ne sert que pour lever une ambigüité. Exemple

Code :
  1. #!/bin/sh
  2. prix=10
  3. echo "Mes bananes coutent $prixF"     # Le shell croira qu'on demande la variable "prixF" qui n'existe pas
  4. echo "Mes bananes coutent ${prix}F"  # Le shell affiche bien la variable "prix" suivi du caractère "F"


 
Ou bien pour y appliquer des mécanismes spéciaux comme ${var:-defaut} ou autres...
 

olivthill a écrit :

Dans un echo, au lieu de echo "toto ${titi} tutu", je fais plutôt echo "toto "${titi}" tutu".


Multiplier les guillemets ne sert à rien (et à la limite peut embrouiller) => echo "toto ${titi} tutu"
Cours de shell ici http://fr.lang.free.fr/cours/Shell_v2.0.pdf où le chapitreVI (page 27) explique bien la façon d'utiliser les guillemets doubles et ce qu'ils laissent passer ou non.


Message édité par Sve@r le 07-06-2008 à 11:32:35

---------------
Vous ne pouvez pas apporter la prospérité au pauvre en la retirant au riche.
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed