PERL retourne OS [Résolu/Fermé]

Signaler
Messages postés
399
Date d'inscription
mardi 27 juillet 2010
Statut
Membre
Dernière intervention
6 mai 2014
-
Messages postés
399
Date d'inscription
mardi 27 juillet 2010
Statut
Membre
Dernière intervention
6 mai 2014
-
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




2 réponses

Messages postés
150
Date d'inscription
mercredi 29 octobre 2008
Statut
Membre
Dernière intervention
25 novembre 2013
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
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 65492 internautes nous ont dit merci ce mois-ci

Messages postés
399
Date d'inscription
mardi 27 juillet 2010
Statut
Membre
Dernière intervention
6 mai 2014
17
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";
}
Messages postés
150
Date d'inscription
mercredi 29 octobre 2008
Statut
Membre
Dernière intervention
25 novembre 2013
19
MERCI !
Oui ça peut toujours servir !
@+
Messages postés
399
Date d'inscription
mardi 27 juillet 2010
Statut
Membre
Dernière intervention
6 mai 2014
17
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