Thread Remote Shell Variablen (11 answers)
Opened by audacity363 at 2013-10-02 08:26

martin.g
 2013-10-02 10:05
#170894 #170894
User since
2013-09-20
40 Artikel
BenutzerIn
[default_avatar]
So in etwa sollte Dein Programm aussehen, dass es funktioniert:

Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
my $abfrage = qq~ rsh $ARGV[0] "
    export SEMAPHOREN_PATH=$remote_sem_path
    env | grep SEMA
    $net_post_path/netposts $ARGV[1]
    ls -lisa \\\$SEMAPHOREN_PATH
    ipcs -s -a
" ~;
printf "Execute [%s]\n", $abfrage;
my $result = `$abfrage`;
print $result;´


Nun kommt dennoch ein doppeltes Escaping ins Spiel, das liegt allerdings an rsh. Der erste \ escapet den zweiten und der dritte das $. So dass an Deinen syscall effektiv \$SEMAPHOREN_PATH übergeben wird. Deine Shell wiederum weiß dadurch, dass sie die Variable nicht interpolieren darf und gibt dann $SEMAPHOREN_PATH an die entfernte Shell weiter.

Alles etwas gewöhnungsbedürftig, aber man wächst rein :-) Evtl. wäre auch eines der Net::SSH Module etwas für Dich, aber auch die haben ihre Tücken...

View full thread Remote Shell Variablen