PERL retourne OS
Résolu
magicshark
Messages postés
402
Date d'inscription
Statut
Membre
Dernière intervention
-
magicshark Messages postés 402 Date d'inscription Statut Membre Dernière intervention -
magicshark Messages postés 402 Date d'inscription Statut Membre Dernière intervention -
Bonjour, je suis en BTS info et j'ai une appli portable a faire en PERL jusque là ça va, là ou ça se gatte pour moi c'est que comme mon scrpt va devoir lancer diverse ligne de commande je vais devoir connaitre l'os de la machine car linux mac et windows tourne pas pareil. Comment je pourrait faire pour connaitre l'os de la machine ?
merci
merci
A voir également:
- PERL retourne OS
- Mac os 15 - Accueil - MacOS
- Reinstaller mac os - Guide
- Ecran retourne - Guide
- Mac os 14 - Accueil - MacOS
- Télécharger chrome os iso francais - Guide
2 réponses
Bsr,
j'ai justement posé la question ce matin dans SE :-)
https://forums.commentcamarche.net/forum/affich-20867833-test-du-systeme-en-perl
#!/usr/bin/perl
use strict;
use Config;
{
print "$Config{osname}\n";
print "$Config{archname}\n";
}
# perl system.pl
linux
i686-linux-thread-multi
j'ai justement posé la question ce matin dans SE :-)
https://forums.commentcamarche.net/forum/affich-20867833-test-du-systeme-en-perl
#!/usr/bin/perl
use strict;
use Config;
{
print "$Config{osname}\n";
print "$Config{archname}\n";
}
# perl system.pl
linux
i686-linux-thread-multi
pardon j'ai aussi trouver une solution dans la foulé et j'ai zapper de la mettre en fait (me rappelle plus en PERL) mais si sa peut servir a d'autre...
j'envoi la ligne de commande suivante
j'envoi la ligne de commande suivante
#!/usr/bin/perl my $os; $os='uname 2>NUL'; if( $os eq "Linux\n" ) #\n car la commande fait un retour chariot toute seul { print "Tu tournes sous le pingouin\n"; } elsif( $os eq "Darwin\n" ) { print "Tu tournes sous la pomme\n"; } else { print "tu tournes sous windows\n"; }
au passage je vais peut etre expliquer ma commande pour ceux qui ne la comprenne pas.
la variable $os comprend une ligne de commande reconnut sous linux et mac mais pas sous windows la commande uname elle retourne soit Linux pour linux soit Darwin pour mac
ensuite je fais :" 2>NUL"
j'expliquerais plus loin le "2".
le chevron vers Nul s'ignifie que le resultat de la commande est rediriger vers un fichier ce fichier peut etre n'importe lequel result.txt par exemple. Ici c'est un mot clef, NUL donc le resultat est retourner vers un fichier qui ne sera pas creer ça permet que la console dans laquelle la commande est lancer n'affiche rien.
le 2 maintenant c'est la sortie d'erreur.
Donc si je reprend bien ici quand la commande retourne une erreur celle ci est rediriger vers rien alors que si la commande retourne quelque chose de normale la commande fonctionne normalement et est donc utilisable pour ça que dans le script je test linux et darwin mais pas windows celui ci est dans un else. j'espere etre claire sinon rechercher dans google sortie erreur, redirection de resultat
la variable $os comprend une ligne de commande reconnut sous linux et mac mais pas sous windows la commande uname elle retourne soit Linux pour linux soit Darwin pour mac
ensuite je fais :" 2>NUL"
j'expliquerais plus loin le "2".
le chevron vers Nul s'ignifie que le resultat de la commande est rediriger vers un fichier ce fichier peut etre n'importe lequel result.txt par exemple. Ici c'est un mot clef, NUL donc le resultat est retourner vers un fichier qui ne sera pas creer ça permet que la console dans laquelle la commande est lancer n'affiche rien.
le 2 maintenant c'est la sortie d'erreur.
Donc si je reprend bien ici quand la commande retourne une erreur celle ci est rediriger vers rien alors que si la commande retourne quelque chose de normale la commande fonctionne normalement et est donc utilisable pour ça que dans le script je test linux et darwin mais pas windows celui ci est dans un else. j'espere etre claire sinon rechercher dans google sortie erreur, redirection de resultat