Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1430 connectés 

  FORUM HardWare.fr
  Programmation
  Shell/Batch

  [KSH => CSH] Adaptation de script

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[KSH => CSH] Adaptation de script

n°1609242
shanod
Posté le 07-09-2007 à 11:18:36  profilanswer
 

Bonjour à tous,
 
Pour des raisons professionnelles, je dois adapter un script ksh en csh.
Le problème est que je maitrise très mal les 2 "langages", et le net est très pauvre en doc csh.
 
Je progresse au ligne par ligne, mais voilà qu'une m'embete particulièrement depuis plusieures heures :
 

Code :
  1. set rech=`cat $lst | egrep -v "^#|^\?" `


 
rech, une variable classique
$lst, le contenu d'un fichier
Je souhaiterai faire abstraction dans le fichier des lignes qui commencent par "#" (typiquement les commentaire) ou zéro ou une occurence de l'expression commencant par "\"
 
En ksh, tout fonctionne. En csh, bien sur ça plante!  
Le | a l'air de poser problème, mais je pense que le problème majeur vient des caractères spéciaux qui ne sont pas interprétés de la même façon en csh.
 
Merci d'avance si vous avez des idées à proposer  :jap:

mood
Publicité
Posté le 07-09-2007 à 11:18:36  profilanswer
 

n°1609307
shanod
Posté le 07-09-2007 à 14:28:21  profilanswer
 

Une centaine de tests + tard...  :pt1cable:  
 
Voilà qui est étrange... :
 

Code :
  1. set rech=`cat toto.csh | egrep -v "^#|^\?"|wc -l


 
En ajoutant le wc -l qui est censé me retourner le nombre de lignes concordant à ma condition, le retour est exact !
 
Ce qui veut dire que le problème vient du fait qu'il n'arrive pas à mettre mon script dans ma variable "rech"
 
Faut-il déclarer cette variable d'une certaine manière ?
La taille d'une variable est-elle restreinte coté CSH ?

n°1609802
Sve@r
Posté le 09-09-2007 à 13:23:06  profilanswer
 

shanod a écrit :

Bonjour à tous,
 
Pour des raisons professionnelles, je dois adapter un script ksh en csh.


Pas de bol...
 

shanod a écrit :

Le problème est que je maitrise très mal les 2 "langages", et le net est très pauvre en doc csh.


Vi, je pense que le csh n'a jamais percé
 

shanod a écrit :

Je progresse au ligne par ligne, mais voilà qu'une m'embete particulièrement depuis plusieures heures :
 

Code :
  1. set rech=`cat $lst | egrep -v "^#|^\?" `


 
rech, une variable classique
$lst, le contenu d'un fichier


hum... si "$lst" est un contenu, alors ça ne va pas. Tu peux pas faire "cat <qqchose>". Tu peux faire "echo <qqchose>" ou bien "cat <nom de fichier>" mais en aucune façon tu peux faire "cat <contenu>" => le pgm "cat" interprètera ce "contenu" comme un nom de fichier !!!
 

shanod a écrit :

En ksh, tout fonctionne. En csh, bien sur ça plante!  
Le | a l'air de poser problème, mais je pense que le problème majeur vient des caractères spéciaux qui ne sont pas interprétés de la même façon en csh.


C'est pas le csh qui interprète tes caractères spéciaux, c'est le "egrep" (à condition qu'il les reçoive correctement). Ptet que le csh les transforme avant de les passer au egrep (et que les guillemets double qui sont une bonne protection ksh ne fonctionnent pas pareil en csh)
Malheureusement, je connais pas le csh...


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

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Shell/Batch

  [KSH => CSH] Adaptation de script

 

Sujets relatifs
[Script]Parser un fichier C et imprimer les fonctions externesErreur dans script de migration
[Batch] Lancement d'une appli sans bloquer le deroulement de scriptsimple script a corriger de la part d'un grand debutant
script multi serveurProbleme script d'ajout d'entrée dans une base mysql
Je cherche un script d'explorateur de FTP à la JBC Explorerscript php GD
Script de rotation d'élements htmlErreur dans le script ?
Plus de sujets relatifs à : [KSH => CSH] Adaptation de script


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR