PERL retourne OS

Résolu/Fermé
magicshark Messages postés 399 Date d'inscription mardi 27 juillet 2010 Statut Membre Dernière intervention 6 mai 2014 - 15 févr. 2011 à 18:47
magicshark Messages postés 399 Date d'inscription mardi 27 juillet 2010 Statut Membre Dernière intervention 6 mai 2014 - 28 févr. 2011 à 15:11
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




A voir également:

2 réponses

dmganges Messages postés 150 Date d'inscription mercredi 29 octobre 2008 Statut Membre Dernière intervention 25 novembre 2013 19
15 févr. 2011 à 19:19
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
1
magicshark Messages postés 399 Date d'inscription mardi 27 juillet 2010 Statut Membre Dernière intervention 6 mai 2014 13
28 févr. 2011 à 00:24
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
#!/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";
}
0
dmganges Messages postés 150 Date d'inscription mercredi 29 octobre 2008 Statut Membre Dernière intervention 25 novembre 2013 19
28 févr. 2011 à 06:11
MERCI !
Oui ça peut toujours servir !
@+
0
magicshark Messages postés 399 Date d'inscription mardi 27 juillet 2010 Statut Membre Dernière intervention 6 mai 2014 13
28 févr. 2011 à 15:11
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
0