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

Langage Perl Discussion :

Récuperer le nom du système d'exploitation


Sujet :

Langage Perl

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Juin 2005
    Messages
    35
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Juin 2005
    Messages : 35
    Par défaut Récuperer le nom du système d'exploitation
    Bonjour,

    après avoir fait des recherches dans le forum et des bouquins de programmations Perl, je n'ai pas trouvé comment savoir dans un script sous quel OS est ce script.

    J'explique mon soucis : j'écris un script Perl ou j'utilise la fonction split afin de récupérer un nom de fichier :
    ou $line correspond à un path, je récupère ensuite le dernier élément du tableau fourni par split.

    J'ai fait ce script sous windows, il marche . Mais sous linux(ce script doit pouvoir marcher sous les deux) je dois passer Je voudrais savoir si il existe un moyen donc de connaitre l'os sous lequel on travaille (un peu dans le genre de os.name sous python) afin d'entourer ce code par un condition.

    Merci de votre aide.

  2. #2
    Responsable Perl et Outils

    Avatar de djibril
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    19 822
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 822

  3. #3
    Membre Expert
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2003
    Messages
    1 605
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2003
    Messages : 1 605
    Par défaut
    Citation Envoyé par djibril Voir le message
    Ah oui, aussi

  4. #4
    Responsable Perl et Outils

    Avatar de djibril
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    19 822
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 822
    Par défaut

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    print "$ENV{OS} ou $^O\n";
    Windows_NT ou MSWin32

  5. #5
    Expert confirmé
    Avatar de Jedai
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2003
    Messages
    6 245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Avril 2003
    Messages : 6 245
    Par défaut
    On a répondu à ta question mais pas vraiment à ton besoin à mon avis : au lieu de faire le parsing à la main et en différenciant selon deux types d'OS, pourquoi ne pas simplement déléguer le travail à des modules qui font déjà ça parfaitement sur à peu près n'importe quelle plateforme ? D'autant qu'ils sont dans le CORE, c'est à dire qu'ils sont distribués directement avec Perl !
    Je parle de File::Spec, par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    use File::Spec::Functions qw(splitpath);
    my (undef, undef, $filename) = splitpath($line);
    --
    Jedaï

  6. #6
    Responsable Perl et Outils

    Avatar de djibril
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    19 822
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 822
    Par défaut
    ou bien tout simplement utiliser File::Basename.
    Et si tu voulais juste recuperer le nom d'un fichier dans un chemin (path), c'est expliqué dans la FAQ avec un exemple dessus

  7. #7
    Membre Expert
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2003
    Messages
    1 605
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2003
    Messages : 1 605
    Par défaut
    Bonjour,

    regarde ce que contient ta variable d'environnement %ENV.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    foreach(keys %ENV)
    {
        print "$_ = $ENV{$_}\n";
    }
    Au boulot sur mon Windows 2000, j'ai ça en résultat (extrait) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SYSTEMROOT = C:\WINNT
    WINDIR = C:\WINNT
    OS = Windows_NT
    Le même script sur notre serveur AIX renvoie ça (toujours un extrait) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    >perl -e 'foreach(keys %ENV) { print "$_ = $ENV{$_}\n";}'
    HOST_TYPE = UNIX
    LANG = fr_FR
    SHELL = /usr/bin/ksh
    TZ = UPro/lib/gcc-lib/powerpc-ibm-aix5.1.0.0/2.9-aix51-020209/aix64:/sbin:.

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

Discussions similaires

  1. Récupérer le nom du système d'exploitation du visiteur
    Par Olivier Regnier dans le forum Langage
    Réponses: 2
    Dernier message: 13/11/2007, 23h06
  2. choisir le système d'exploitation à amorcer
    Par mouloudéen dans le forum Autres Logiciels
    Réponses: 2
    Dernier message: 30/06/2005, 09h11
  3. Réponses: 4
    Dernier message: 26/06/2005, 23h28
  4. [ADSI] récuperer un nom de domaine
    Par Overflow64 dans le forum API, COM et SDKs
    Réponses: 3
    Dernier message: 04/06/2005, 22h16

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