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 :

debian squeeze shell function


Sujet :

Shell et commandes GNU

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Mars 2005
    Messages
    95
    Détails du profil
    Informations personnelles :
    Âge : 52

    Informations forums :
    Inscription : Mars 2005
    Messages : 95
    Par défaut debian squeeze shell function
    Bonjour,
    J'ai un problème avec des scripts shell qui utilisent des fonctions.
    Exemple: ce bout de script shell fonctionne sous debian lenny mais plus sous squeeze.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
      #!/bin/bash
               function quit {
                   exit
               }
               function hello {
                   echo Hello!
               }
               hello
               quit
               echo foo
    test.sh: 2: function: not found

    comment déclarer une fonction maintenant ?

    Merci de votre aide.

    Sebastien

  2. #2
    Membre confirmé
    Inscrit en
    Mars 2005
    Messages
    95
    Détails du profil
    Informations personnelles :
    Âge : 52

    Informations forums :
    Inscription : Mars 2005
    Messages : 95
    Par défaut
    Bon j'ai trouvé: la syntaxe a changé

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    #!/bin/sh
               quit ()
            {
                   exit
               }
                hello () {
                   echo Hello!
               }
               hello
               quit
               echo foo

  3. #3
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7 651
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 651
    Par défaut
    Bonjour,

    la syntaxe n'a pas changé; le shell a changé !

    sh est désormais un lien vers dash, qui est plus strictement POSIX.
    Or, function n'est pas POSIX.
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  4. #4
    Expert confirmé

    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    1 946
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 1 946
    Par défaut
    Salut,

    Citation Envoyé par N_BaH Voir le message
    Bonjour,

    la syntaxe n'a pas changé; le shell a changé !

    sh est désormais un lien vers dash, qui est plus strictement POSIX.
    Or, function n'est pas POSIX.
    A part que dans son 1er script c'est du "bash"

  5. #5
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7 651
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 651
    Par défaut
    Bonjour zipe31,

    un shebang bash ne prouve pas que le script est réellement exécuté par bash.

    le shebang est bash
    le code est bash
    mais si je lance le script : alors maintenant c'est dash qui l'exécutera, et function ne fonctionnera pas :/
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  6. #6
    Expert confirmé

    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    1 946
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 1 946
    Par défaut
    Re-

    Citation Envoyé par N_BaH Voir le message
    Bonjour zipe31,

    un shebang bash ne prouve pas que le script est réellement exécuté par bash.

    le shebang est bash
    le code est bash
    mais si je lance le script : alors maintenant c'est dash qui l'exécutera, et function ne fonctionnera pas :/
    C'est clair que vu sous cet angle (mort)

    Merci de m'avoir montré la lune alors que je ne voyais que le doigt

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

Discussions similaires

  1. [Debian squeeze] Imprimante Canon
    Par webinfo dans le forum Debian
    Réponses: 4
    Dernier message: 09/03/2010, 08h17
  2. [Debian Squeeze] Impossible de mettre à jour Eclipse
    Par Invité dans le forum Eclipse
    Réponses: 17
    Dernier message: 28/01/2010, 09h43
  3. installer debian squeeze
    Par jeanbi dans le forum Debian
    Réponses: 3
    Dernier message: 27/08/2009, 10h08
  4. configuration acces internet debian mode shell
    Par Balbuzard dans le forum Réseau
    Réponses: 2
    Dernier message: 16/03/2009, 00h15

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