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

Linux Discussion :

Tableaux Korn Shell


Sujet :

Linux

  1. #1
    Membre régulier
    Inscrit en
    Mai 2004
    Messages
    148
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Mai 2004
    Messages : 148
    Points : 87
    Points
    87
    Par défaut Tableaux Korn Shell
    Bonjour,

    Je ne trouve pas comment utiliser les valeurs d'un tableau en Korn Shell, ou du moins, tout ce que j'ai trouvé ne marche pas...Voici mon code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    echo "Les 10 premiers nombres premiers : "
    set -T tab 1 2 3 5 7 11 13 17 19 23
    i=0
    while test $i -lt 10
    do
      echo -n ${T[i]}
      i=$((i+1))
    done
    cela ne plante pas, mais n'affiche pas la liste des nombres...

    D'avance merci

  2. #2
    Expert éminent sénior
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 720
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 720
    Points : 31 043
    Points
    31 043
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par Rémiz Voir le message
    Bonjour,

    Je ne trouve pas comment utiliser les valeurs d'un tableau en Korn Shell, ou du moins, tout ce que j'ai trouvé ne marche pas...Voici mon code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    echo "Les 10 premiers nombres premiers : "
    set -T tab 1 2 3 5 7 11 13 17 19 23
    i=0
    while test $i -lt 10
    do
      echo -n ${T[i]}
      i=$((i+1))
    done
    cela ne plante pas, mais n'affiche pas la liste des nombres...

    D'avance merci

  3. #3
    Membre régulier
    Inscrit en
    Mai 2004
    Messages
    148
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Mai 2004
    Messages : 148
    Points : 87
    Points
    87
    Par défaut
    Salut,

    Ca ne marche pas non plus....

    a+

  4. #4
    Invité
    Invité(e)

  5. #5
    Membre régulier
    Inscrit en
    Mai 2004
    Messages
    148
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Mai 2004
    Messages : 148
    Points : 87
    Points
    87
    Par défaut
    Non, ça ne resoud pas le problème...si je demande d'afficher les i, cela marche mais le contenu du tableau, lui, ne s'affiche pas...

  6. #6
    Invité
    Invité(e)
    Par défaut
    Je viens de tester ton code
    ça devrait fonctionner ainsi

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    #!/usr/bin/ksh
    echo "Les 10 premiers nombres premiers : "
    set -A tab 1 2 3 5 7 11 13 17 19 23
    i=0
    while test $i -lt 10
    do
      echo ${tab[$i]}
      i=$(($i+1))
    done
    Résultat:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    tyche(fnsw)/fnsw> ./tabksh.ksh
    Les 10 premiers nombres premiers :
    1
    2
    3
    5
    7
    11
    13
    17
    19
    23

  7. #7
    Membre régulier
    Inscrit en
    Mai 2004
    Messages
    148
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Mai 2004
    Messages : 148
    Points : 87
    Points
    87
    Par défaut
    Non, désolé de te contredire, mais sur mon poste ça ne marche toujours pas...Existe il des problèmes d'incompatibilité sur les shells (selon versions) ?

    a+

  8. #8
    Invité
    Invité(e)
    Par défaut
    Peux-tu montrer ton code corrigé ainsi le résultat lors de l'execution de ton script.
    Quel est ton OS?

  9. #9
    Membre régulier
    Inscrit en
    Mai 2004
    Messages
    148
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Mai 2004
    Messages : 148
    Points : 87
    Points
    87
    Par défaut
    Salut,

    Désolé, j'ai vu ta réponse un peu tard...Mon code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    echo "Les 15 premiers nombres premiers : "
    set -tab T 1 2 3 5 7 11 13 17 19 23 29 31 37 41 43
    i=0
    while test $i -lt 15
    do
      echo -n ${T[$i]}
      i=$(($i+1))
    done
    La réponse :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Les 15 premiers nombres premiers :
    [1]+ Done               nedit progr
    Sinon, j'utilise Ubuntu..Voilà
    Merci a+

  10. #10
    Invité
    Invité(e)
    Par défaut
    Salut,

    comme je te l'ai indiqué précedemment, remplace ceci par ce qui est en rouge dans mon script:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    set -tab T 1 2 3 5 7 11 13 17 19 23 29 31 37 41 43


    Test sur ubuntu
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    user@vm-ubuntu8:~$ cat /proc/version
    Linux version 2.6.24-16-generic (buildd@palmer) (gcc version 4.2.3 (Ubuntu 4.2.3-2ubuntu7)) #1 SMP Thu Apr 10 13:23:42 UTC 2008
    user@vm-ubuntu8:~$ cat ./test.ksh
    #!/bin/ksh
    echo "Les 10 premiers nombres premiers : "
    set -A tab 1 2 3 5 7 11 13 17 19 23
    i=0
    while test $i -lt 10
    do
      echo ${tab[$i]}
      i=$(($i+1))
    done
    user@vm-ubuntu8:~$ ./test.ksh
    Les 10 premiers nombres premiers :
    1
    2
    3
    5
    7
    11
    13
    17
    19
    23

  11. #11
    Membre régulier
    Inscrit en
    Mai 2004
    Messages
    148
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Mai 2004
    Messages : 148
    Points : 87
    Points
    87
    Par défaut
    Non, comme je t'ai dit, ça ne marche pas...

    Résultat :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Les 15 premiers nombres premiers :
    ./progr: line 73: set: -A: option invalide
    set: usage: set [--abefhkmnptuvxBCHP] [-o option] [arg ...]
    [1]+  Done                    nedit progr
    A+

  12. #12
    Invité
    Invité(e)
    Par défaut
    Re,
    Es-tu sûr que tu utilises bien l'interpréteur ksh?


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    user@vm-ubuntu8:~$ set -A
    -bash: set: -A: option invalide
    set: usage: set [--abefhkmnptuvxBCHP] [-o option] [arg ...]
    user@vm-ubuntu8:~$ ksh
    $ set -A
    ksh: set: -A: name argument expected
    Usage: set [-sabefhkmnprtuvxBCGH] [-A name] [-o[option]] [arg ...]

  13. #13
    Membre régulier
    Inscrit en
    Mai 2004
    Messages
    148
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Mai 2004
    Messages : 148
    Points : 87
    Points
    87
    Par défaut
    J'ai mis ça en haut de mon script :

    #!/usr/bin/kshell

    Ca s'execute sans erreur, donc je pense que c'est bon. De plus mon script contient des fonctions, des boucles et des structures conditionelles, qui marchent..

    merci.

  14. #14
    Invité
    Invité(e)
    Par défaut
    kshell n'a rien à voir avec le korn shell (ksh)

    Installe le package ksh si ce n'est pas déjà fait et mets le chemin vers ksh.

    What is kshell?
    kshell Linux service


    Explanation

    kshell service:
    Used when AIX's rsh/rcp is enabled for Kerberos Version 5 authentication protocol. Needed for CSM dsh operations when using kerberized rsh for remote commands.
    Up

    KSHELL(1) manual page
    The kshell utility will create a subshell (using the user's shell as defined in their passwd file entry) that has a new instance of the PIPE (memory based) ...
    Comme l'indique ce commentaire ton utilitaire kshell va utiliser le shell du user qui a executé le script (certainement bash qui est le shell par défaut sur ce genre de système ) -> d'où l'explication que tes boucles et autres instructions soient bien executées correctement sauf le "set -A" qui n'est pas connu du bash mais bien du korn shell (ksh)
    Dernière modification par Invité ; 22/10/2008 à 17h20.

  15. #15
    Expert éminent sénior
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 720
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 720
    Points : 31 043
    Points
    31 043
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par Rémiz Voir le message
    Sinon, j'utilise Ubuntu..Voilà
    Citation Envoyé par Mygale1978 Voir le message
    kshell n'a rien à voir avec le korn shell (ksh)

    Installe le package ksh si ce n'est pas déjà fait et mets le chemin vers ksh.
    Euh... pourquoi tu fais ça en ksh alors que t'as bash plus puissant à disposition ??? Tu écris un script qui sera déployé ailleurs ???

  16. #16
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Sve@r Voir le message
    Euh... pourquoi tu fais ça en ksh alors que t'as bash plus puissant à disposition ??? Tu écris un script qui sera déployé ailleurs ???
    Je me suis simplement basé sur le premier post:

    Bonjour,
    Je ne trouve pas comment utiliser les valeurs d'un tableau en Korn Shell, ou du moins, tout ce que j'ai trouvé ne marche pas...Voici mon code :

  17. #17
    Membre régulier
    Inscrit en
    Mai 2004
    Messages
    148
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Mai 2004
    Messages : 148
    Points : 87
    Points
    87
    Par défaut
    Salut,

    lol, je suis un boulet ..Désolé je pensais que kshell et ksh c'était la même chose, vu la ressemblance des noms...
    Bon, j'ai installé le Korn Shell, modifié la première ligne du script, et effectivement ça marche mieux !!! PS : je crois que sve@r parlait à moi dans son dernier message quand il me demandait pourquoi j'utilise ksh
    Merci Mygale !

    Salut Sve@r,

    Ben on m'a demandé d'apprendre le Korn Shell, mais sinon il y a beaucoup de différence entre Bash et ksh niveau puissance ? Quelles sont elles en gros ?

    Merci à tous !

  18. #18
    Expert éminent sénior
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 720
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 720
    Points : 31 043
    Points
    31 043
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par Rémiz Voir le message
    PS : je crois que sve@r parlait à moi dans son dernier message quand il me demandait pourquoi j'utilise ksh
    Exact, t'étais le premier cité dans mon précédent post

    Citation Envoyé par Rémiz Voir le message
    Salut Sve@r,

    Ben on m'a demandé d'apprendre le Korn Shell, mais sinon il y a beaucoup de différence entre Bash et ksh niveau puissance ? Quelles sont elles en gros ?
    Bah entre ksh et sh il y a beaucoup de différence c'est pourquoi je comprends qu'on t'ait demandé de l'apprendre (par exemple les tableaux n'existent pas en shell) mais entre bash et ksh il y en a très peu. Si t'es sur Ubuntu et que tu fais tout en bash tes scripts tourneront ensuite en ksh dans 99,5% des cas.

    Voir les cours Shell Linux : http://linux.developpez.com/cours/

  19. #19
    Membre régulier
    Inscrit en
    Mai 2004
    Messages
    148
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Mai 2004
    Messages : 148
    Points : 87
    Points
    87
    Par défaut
    Ok,

    Merci pour le cours, je vais le lire, il à l'air complet !

    A+

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 20/09/2006, 10h41
  2. Problème "Rechercher des patrons" avec Korn Shell
    Par dongnold dans le forum Linux
    Réponses: 2
    Dernier message: 29/07/2006, 15h22
  3. Automatiser un korn shell
    Par tonymontana4192 dans le forum Linux
    Réponses: 1
    Dernier message: 25/11/2005, 17h43
  4. Korn shell et evaluation
    Par taket dans le forum Linux
    Réponses: 7
    Dernier message: 07/11/2005, 15h43
  5. Lire un fichier en korn shell
    Par declencher dans le forum Linux
    Réponses: 5
    Dernier message: 23/03/2005, 15h30

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