/ Forside / Teknologi / Operativsystemer / Linux / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Linux
#NavnPoint
o.v.n. 11177
peque 7911
dk 4814
e.c 2359
Uranus 1334
emesen 1334
stone47 1307
linuxrules 1214
Octon 1100
10  BjarneD 875
Kørsel af perl-scripts via SSH - hvor er m~
Fra : Brian Ipsen


Dato : 03-09-03 11:09

Hej!

Jeg kalder et perl-script på en anden maskine via SSH - problemet er, at
scriptet smider noget output, og også forventer noget input. I øjeblikket må
jeg taste i "blinde", da outputtet fra perl-scriptet først kommer, når
scriptet/ssh-forbindelsen lukkes igen... Hvorfor ?

Perl scriptet bruger standard print ""; og ReadLine(0) statements - men
intet ryger over med det samme i SSH-forbindelsen... Den æder godt nok mit
input (fra ReadLine(0)) - men hvor er de ting fra print ""; blevet af, siden
de først dukker op til sidst ?

Mvh.

/Brian



 
 
Brian Ipsen (03-09-2003)
Kommentar
Fra : Brian Ipsen


Dato : 03-09-03 11:35


"Brian Ipsen" <bipsen@andebakken.dk> wrote in message
news:3f55bf26$0$13187$edfadb0f@dread15.news.tele.dk...

> Jeg kalder et perl-script på en anden maskine via SSH - problemet er, at
> scriptet smider noget output, og også forventer noget input. I øjeblikket

> jeg taste i "blinde", da outputtet fra perl-scriptet først kommer, når
> scriptet/ssh-forbindelsen lukkes igen... Hvorfor ?
>
> Perl scriptet bruger standard print ""; og ReadLine(0) statements - men
> intet ryger over med det samme i SSH-forbindelsen... Den æder godt nok mit
> input (fra ReadLine(0)) - men hvor er de ting fra print ""; blevet af,
siden
> de først dukker op til sidst ?

Dette simple script illusterer problemet:

#!/usr/bin/perl
use Term::ReadKey;
print "test\n\n";
my $rr = ReadLine(0);
print "test2\n";

Når scriptet kører via SSH står det bare og venter - så kan jeg skrive
f.eks. ff og trykke enter ... og så kommer følgende på min skræm:

# ssh root@test-pc /root/script/test.pl
ff
test

test2


Hvorfor får jeg ikke "test" tilbage på min maskine, før scriptet vil have
input ?

/Brian



Peter Makholm (03-09-2003)
Kommentar
Fra : Peter Makholm


Dato : 03-09-03 11:47

"Brian Ipsen" <bipsen@andebakken.dk> writes:

> #!/usr/bin/perl
> use Term::ReadKey;
> print "test\n\n";
> my $rr = ReadLine(0);
> print "test2\n";
>
> Når scriptet kører via SSH står det bare og venter - så kan jeg skrive
> f.eks. ff og trykke enter ... og så kommer følgende på min skræm:

Prøv om det hjælper at sætte $| = 1.

--
Peter Makholm | I have no caps-lock but I must scream...
peter@makholm.net | -- Greg
http://hacking.dk |

Brian Ipsen (03-09-2003)
Kommentar
Fra : Brian Ipsen


Dato : 03-09-03 12:03

"Peter Makholm" <peter@makholm.net> wrote in message
news:87d6eigneb.fsf@xyzzy.adsl.dk...

> > #!/usr/bin/perl
> > use Term::ReadKey;
> > print "test\n\n";
> > my $rr = ReadLine(0);
> > print "test2\n";
> >
> > Når scriptet kører via SSH står det bare og venter - så kan jeg skrive
> > f.eks. ff og trykke enter ... og så kommer følgende på min skræm:
>
> Prøv om det hjælper at sætte $| = 1.

Det løste problemet - mange tak!

/Brian



Peter Makholm (03-09-2003)
Kommentar
Fra : Peter Makholm


Dato : 03-09-03 12:16

"Brian Ipsen" <bipsen@andebakken.dk> writes:

>> Prøv om det hjælper at sætte $| = 1.
>
> Det løste problemet - mange tak!

Ok, problemet er/var at STDOUT bliver buffret. Ovenstående gør at perl
flusher denne buffer efter hver print-komando.

--
Peter Makholm | Why does the entertainment industry wants us to
peter@makholm.net | believe that a society base on full surveillance
http://hacking.dk | is bad?
| Do they have something to hide?

Søg
Reklame
Statistik
Spørgsmål : 177504
Tips : 31968
Nyheder : 719565
Indlæg : 6408551
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste