Perl/shell
Résolu/Fermé
bennyben
-
26 janv. 2009 à 17:25
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 - 27 janv. 2009 à 17:24
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 - 27 janv. 2009 à 17:24
A voir également:
- Perl/shell
- Classic shell windows 11 - Télécharger - Personnalisation
- Denon perl pro test - Accueil - Audio
- Shell startup windows 10 - Guide
- Efi shell version 2.31 - Forum Programmation
- Ssh secure shell download - Télécharger - Divers Web & Internet
9 réponses
gigaga
Messages postés
2346
Date d'inscription
vendredi 20 juin 2008
Statut
Membre
Dernière intervention
22 août 2014
301
26 janv. 2009 à 17:30
26 janv. 2009 à 17:30
Qu'est ce que : "./bob_test"? un fichier? un répertoire?
que vaut "$mavar"?
Si l'exécution est sous windows, tu ne peux pas utiliser la commande "cp" qui n'est utilisable que dans un environnement Unix.
que vaut "$mavar"?
Si l'exécution est sous windows, tu ne peux pas utiliser la commande "cp" qui n'est utilisable que dans un environnement Unix.
lami20j
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 569
27 janv. 2009 à 08:34
27 janv. 2009 à 08:34
Salut,
Tout d'abord si tu fait du perl `` c'est pour capturer le résultat d'une commande
Vu que tu fais un cp je ne pense pas que tu veux capturer quelque chose. Donc il faut utiliser la fonction system()
Tout d'abord si tu fait du perl `` c'est pour capturer le résultat d'une commande
Vu que tu fais un cp je ne pense pas que tu veux capturer quelque chose. Donc il faut utiliser la fonction system()
system("cp", "./bob_test bob_test_${mavar}.xml");ou
$mavar .= ".xml"; system("cp", "./bob_test bob_test_$mavar");
Bonjour,
Le même problème persiste, on m'affiche le message d'erreur "sh: .xml not found"
Je ne pige pas...
Merci d'avance
Le même problème persiste, on m'affiche le message d'erreur "sh: .xml not found"
Je ne pige pas...
Merci d'avance
lami20j
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 569
27 janv. 2009 à 15:03
27 janv. 2009 à 15:03
Re,
Affiche ton code.
Affiche ton code.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Bonjour,
Voici mon code
print("entrer l'@ ip\n");
my $ip = <STDIN>;
print("$ip");
`cp ./Modele.xml ./test_${ip}.xml`; //c'est ici que le message d'erreur apparait et ne met pas le .xml comme extension du fichier. (pour moi le porblème se pose à cause de la variable suivie du point mais sa n'est que mon avis).
print ("Nom du site?\n");
my $name= <STDIN>;
`sed 's/NOM_DU_SITE/$name/g' test_455.xml > Erreur.xml`; //il ya une erreur ici aussi. Quand je veus remplacer NOM_DU_SITE par ma variable, Cela echoue alors que si je met directement la valeur de cette variable, sa fonctionne.
Si vous avez des idées sur ces 2 points...
Merci encore.
Voici mon code
print("entrer l'@ ip\n");
my $ip = <STDIN>;
print("$ip");
`cp ./Modele.xml ./test_${ip}.xml`; //c'est ici que le message d'erreur apparait et ne met pas le .xml comme extension du fichier. (pour moi le porblème se pose à cause de la variable suivie du point mais sa n'est que mon avis).
print ("Nom du site?\n");
my $name= <STDIN>;
`sed 's/NOM_DU_SITE/$name/g' test_455.xml > Erreur.xml`; //il ya une erreur ici aussi. Quand je veus remplacer NOM_DU_SITE par ma variable, Cela echoue alors que si je met directement la valeur de cette variable, sa fonctionne.
Si vous avez des idées sur ces 2 points...
Merci encore.
gigaga
Messages postés
2346
Date d'inscription
vendredi 20 juin 2008
Statut
Membre
Dernière intervention
22 août 2014
301
27 janv. 2009 à 16:41
27 janv. 2009 à 16:41
my $ip = <STDIN>;
contient le retour chariot de fin.
rajoute chomp($ip);
contient le retour chariot de fin.
rajoute chomp($ip);
lami20j
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 569
27 janv. 2009 à 16:51
27 janv. 2009 à 16:51
Re,
J'ai fait une erreur dans la fonction system().
Je t'ai dit qu'il ne faut pas utiliser les ``
Voici un exemple avec le résultat
J'ai fait une erreur dans la fonction system().
Je t'ai dit qu'il ne faut pas utiliser les ``
Voici un exemple avec le résultat
lami20j@debian:~/trash$ cat ccm2_systemcp.pl #!/usr/bin/perl use strict;use warnings; print("entrer l'ip : "); chomp (my $ip = <STDIN>); print "$ip\n"; system("cp", "./Modele.xml", "test_${ip}.xml"); __END__Avant l'exécution de script
lami20j@debian:~/trash$ ls -l Modele.xml -rw-r--r-- 1 lami20j lami20j 0 jan 27 16:46 Modele.xml lami20j@debian:~/trash$ ls -l test_192.168.1.1.xml ls: ne peut accéder test_192.168.1.1.xml: Aucun fichier ou répertoire de ce typeExécution script
lami20j@debian:~/trash$ perl ccm2_systemcp.pl entrer l'ip : 192.168.1.1 192.168.1.1Après exécution
lami20j@debian:~/trash$ ls -l Modele.xml -rw-r--r-- 1 lami20j lami20j 0 jan 27 16:46 Modele.xml lami20j@debian:~/trash$ ls -l test_192.168.1.1.xml -rw-r--r-- 1 lami20j lami20j 0 jan 27 16:48 test_192.168.1.1.xml
Re,
Super ça marche pour l'extension .xml !
D'abord, merci beaucoup.
Aurais tu une idée pour mon autre problème?
Je vais tenter de la même façon le system()... Mais je ne suis pas sur vu qu'il ya a cette fois le resultat est renvoyé vers un autre fichier.
Voici la ligne posant problème.
Je te rappel l'erreur: La commande echoue lorsque je met ma variable $name alors que si je met une chaine de caractère directement dans ma commande sa fonctionne.
ex:
$name=bob;
`sed 's/NOM_DU_SITE/$name/g' test_455.xml > Erreur.xml`;
Ne marche pas
alors que
`sed 's/NOM_DU_SITE/bob/g' test_455.xml > Erreur.xml`;
marche
Merci encore pour ta reponse.
Si tu as une idée pour ce problème...
Super ça marche pour l'extension .xml !
D'abord, merci beaucoup.
Aurais tu une idée pour mon autre problème?
Je vais tenter de la même façon le system()... Mais je ne suis pas sur vu qu'il ya a cette fois le resultat est renvoyé vers un autre fichier.
Voici la ligne posant problème.
Je te rappel l'erreur: La commande echoue lorsque je met ma variable $name alors que si je met une chaine de caractère directement dans ma commande sa fonctionne.
ex:
$name=bob;
`sed 's/NOM_DU_SITE/$name/g' test_455.xml > Erreur.xml`;
Ne marche pas
alors que
`sed 's/NOM_DU_SITE/bob/g' test_455.xml > Erreur.xml`;
marche
Merci encore pour ta reponse.
Si tu as une idée pour ce problème...
lami20j
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 569
27 janv. 2009 à 17:12
27 janv. 2009 à 17:12
Re,
Tu fait toujours en perl?
Je parle de la commande avec sed
Tu fait toujours en perl?
Je parle de la commande avec sed
En fait c'est bon sa marche.
Avec le chomp sa marche beaucoup mieux!
Merci encore à toi.
Bonne soirée.
Avec le chomp sa marche beaucoup mieux!
Merci encore à toi.
Bonne soirée.
lami20j
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 569
27 janv. 2009 à 17:24
27 janv. 2009 à 17:24
Re,
Toute fois utiliser sed quand les regex sont implémenté déjà en Perl, c'est vraiment superflu.
Toute fois utiliser sed quand les regex sont implémenté déjà en Perl, c'est vraiment superflu.
27 janv. 2009 à 08:23
$mavar est une adresse ip.
Et je suis sous unix donc pas de problème pour le cp.
Merci.