IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Shell et commandes GNU Discussion :

Script ksh => csh


Sujet :

Shell et commandes GNU

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 27
    Par défaut Script ksh => csh
    Bonjour à tous !

    Alors voilà la ptite histoire... je dois transformer un script ksh en csh.
    Rien de bien difficile, sauf que je ne connais aucun des 2 "langages"...

    Je me débrouille un peu comme je peux, mais là malgrès pas mal de recherche, je seche :

    Voilà la ligne en ksh qui me pose problème :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    [[  -d "/home/$user" ]] || echo "\nLe user $user n'existe pas \n"
    Il bloque sur le [[ qui n'est en soit pas primordial, mais il bloque ensuite sur le -d qui d'après ce que j'ai lu est interpretable en csh... bizarre

    Merci par avance de votre aide

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 27
    Par défaut
    Bon à prioris, le [[ n'était pas si inutile... car sans ça, il n'interprete pas le -d correctement.

    Il suffisait de remplacer le [[ par un simple [
    J'ai quand même mis 1h pour en arrivé là...

    Je ne mets pas le flag [Résolu], j'aurai certainement d'autres questions

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 27
    Par défaut
    Nouveau problème comme prévu... le net est tellement pauvre en doc csh

    Voilà la ligne de commande ksh qui me pose problème :

    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

  4. #4
    Modérateur
    Avatar de jlliagre
    Homme Profil pro
    Ingénieur support avancé & développement
    Inscrit en
    Juin 2007
    Messages
    2 695
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur support avancé & développement
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 695
    Par défaut
    La meilleure idée à proposer serait de laisser tomber csh ...

    http://www.faqs.org/faqs/unix-faq/shell/csh-whynot/

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 27
    Par défaut
    Merci pour ton lien jlliagre

    Si seulement, je pouvais m'en tenir au ksh, ça serait bien plus simple, mais en combinaison avec SAP... il y a certains cas ou le csh est obligatoire.

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 27
    Par défaut
    Voilà qui est étrange... :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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 qu'il n'arrive pas à mettre mon script dans ma variable "rech" en fait...

    Faut-il déclarer cette variable d'une certaine manière ?
    La taille d'une variable est-elle restreinte coté CSH ?

  7. #7
    Modérateur
    Avatar de jlliagre
    Homme Profil pro
    Ingénieur support avancé & développement
    Inscrit en
    Juin 2007
    Messages
    2 695
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur support avancé & développement
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 695
    Par défaut
    Citation Envoyé par shanod Voir le message
    mais en combinaison avec SAP... il y a certains cas ou le csh est obligatoire.
    As-tu un lien qui explique cette obligation étonnante ?

  8. #8
    Membre émérite Avatar de BlaireauOne
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    492
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mars 2007
    Messages : 492
    Par défaut
    Citation Envoyé par shanod Voir le message

    Voilà la ligne de commande ksh qui me pose problème :
    set rech=`cat $lst | egrep -v "^#|^\?" `
    Merci d'avance si vous avez des idées à proposer

    Le site ci-dessous devrait t'intéresser :

    http://www.shellunix.com/csh.html#variables

    Extrait :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Les variables 
    set variable valeur     affectation  
    $variable               valeur de la variable  
    ${variable}             valeur de la variable  
    $?variable              renvoie 0 si la variable n'est pas initialisée, 1 sinon

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Sqlplus ] Appel depuis script KSH
    Par kasiop dans le forum Oracle
    Réponses: 2
    Dernier message: 27/01/2006, 10h25
  2. Script simple en csh
    Par FinalSpirit dans le forum Linux
    Réponses: 10
    Dernier message: 02/01/2006, 22h37
  3. Script Ksh
    Par tonymontana4192 dans le forum Linux
    Réponses: 6
    Dernier message: 20/12/2005, 10h51
  4. Execution d'un script ksh distant
    Par jool dans le forum C++
    Réponses: 2
    Dernier message: 18/03/2005, 10h10
  5. Script ksh - Valeur maximal d'un PID
    Par fidififouille dans le forum Linux
    Réponses: 7
    Dernier message: 09/08/2004, 10h10

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo