Schrift
[thread]6936[/thread]

Environment variablen an bash-shell übergeben: Environment variablen an bash-shell über



<< |< 1 2 >| >> 13 Einträge, 2 Seiten
Gast Gast
 2005-04-27 20:58
#54282 #54282
hallo zusammen,

ich suche ein Lösung, wie ich den path finde, wo sich ein Shellscript,
aufgerufen durch ein cron, gerade befindet.

direkt im Shell kann ich das nicht lösen.

ich habs so mit prel versucht:
direkt in einem Perl-Script erhalte ich so den richtigen Path:
print $ENV{_};

eingebunden im Shellscript mit:
file=`perl -e 'print $ENV{_}'`

erhalte ich als Ausgabe ???? (/usr/bin/perl) ?????

vielleicht gibt es noch einen anderen Weg.
Ich brauche einfach den Pfad, wo sich der aufgerufene
Script gerade befindet.

Thanks für einen Hinweis.

Pet
Ishka
 2005-04-27 21:08
#54283 #54283
User since
2003-08-04
771 Artikel
HausmeisterIn
[Homepage] [default_avatar]
hilft dir der Befehl pwd weiter?
sub z{if(@_){1while$x[$k=rand 10];t($t=$x[$k]=1)}print map"$z[$x[$_]]$_".($_%3?
"":"\n"),1..9}sub t{$j=0;$x[$_+1]==$t&&($j+=2**$_)for 0..8;z,die"Gewinner $z[$t]
"if grep$_==($j&$_),7,56,73,84,146,273,292,448;z,die"Gleichstand\n"if@x>9&&!grep
!$_,@x}@x=4;@z=qw{. [ (};z$^T&1;while(<>){next if$_>9||$x[$_];t$t=$x[$_]=2;z 1}
pet2pet
 2005-04-27 21:13
#54284 #54284
User since
2005-04-27
6 Artikel
BenutzerIn
[default_avatar]
pwd sagt nur aus, von welchem path aus du den script
ausführst.
Nicht aber, wo sich der script selber befindet /:

pet
Ishka
 2005-04-27 21:29
#54285 #54285
User since
2003-08-04
771 Artikel
HausmeisterIn
[Homepage] [default_avatar]
echo $0

wozu brauchst du die Position des Scriptes? Normalerweise sollte die keine Rolle spielen.
sub z{if(@_){1while$x[$k=rand 10];t($t=$x[$k]=1)}print map"$z[$x[$_]]$_".($_%3?
"":"\n"),1..9}sub t{$j=0;$x[$_+1]==$t&&($j+=2**$_)for 0..8;z,die"Gewinner $z[$t]
"if grep$_==($j&$_),7,56,73,84,146,273,292,448;z,die"Gleichstand\n"if@x>9&&!grep
!$_,@x}@x=4;@z=qw{. [ (};z$^T&1;while(<>){next if$_>9||$x[$_];t$t=$x[$_]=2;z 1}
pet2pet
 2005-04-27 21:41
#54286 #54286
User since
2005-04-27
6 Artikel
BenutzerIn
[default_avatar]
ops.. '$0' das geht ja direkt im shell ....

Wozu?
wir arbeiten sehr viel mit shell und perl für automation von Serverkonfigurationen.

die aktuelle Anwendung kommt ausnahmsweise auf diverse LINUX-Distris in unterschiedliche Verzeichnisse.
Ich möchte einfach nur ein Startscript im cron, ohne weitere Pfadabhängige Config-Files .

Nebenbei:
ist zwar nicht notwendig, geht ja direkt mit echo $0,
aber warum geht das nicht :

i=`perl -e 'print $0;'`

Augabe ist leer ...

Pet
ptk
 2005-04-27 21:53
#54287 #54287
User since
2003-11-28
3645 Artikel
ModeratorIn
[default_avatar]
Code: (dl )
use FindBin;
pet2pet
 2005-04-28 01:01
#54288 #54288
User since
2005-04-27
6 Artikel
BenutzerIn
[default_avatar]
thanks (:

Code: (dl )
 i=`perl -e 'use FindBin qw($Bin); print $Bin;'` 
pq
 2005-04-28 12:41
#54289 #54289
User since
2003-08-04
12208 Artikel
Admin1
[Homepage]
user image
[quote=pet2pet,27.04.2005, 19:41]Nebenbei:
ist zwar nicht notwendig, geht ja direkt mit echo $0,
aber warum geht das nicht :

i=`perl -e 'print $0;'`

Augabe ist leer ...[/quote]
keine ahnung, aber bei perl -e 'print $0;' kommt bei mir eh '-e' raus. das
ist bestimmt keine nützliche info...\n\n

<!--EDIT|pq|1114677706-->
Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live. -- Damian Conway in "Perl Best Practices"
lesen: Wiki:Wie frage ich & perlintro Wiki:brian's Leitfaden für jedes Perl-Problem
Crian
 2005-04-28 12:41
#54290 #54290
User since
2003-08-04
5866 Artikel
ModeratorIn
[Homepage]
user image
oder $FindBin::RealBin:

Code: (dl )
perl -MFindBin -e "print $FindBin::RealBin"


Da fragt man sich natürlich, ob Du das Shellskript selbst nicht einfach durch ein Perlprogramm ersetzen solltest.\n\n

<!--EDIT|Crian|1114677893-->
s--Pevna-;s.([a-z]).chr((ord($1)-84)%26+97).gee; s^([A-Z])^chr((ord($1)-52)%26+65)^gee;print;

use strict; use warnings; Link zu meiner Perlseite
pet2pet
 2005-04-28 13:34
#54291 #54291
User since
2005-04-27
6 Artikel
BenutzerIn
[default_avatar]
Es werden vorallem Server-Dienste gestopt gestartet
Prozesse untersucht, Serverinfos ausgelesen ec.

da müsste ich auch im perl jeden befehl 'extern' system()
ausführen.

In diesem Fall macht es mehr Sinn das direkt im shell zu tun.
Für das gibts ja den Shell ...

mit $0 im shell ist ja auch meine frage bestens benatwortet (:

betreff i=`perl -e 'print $0;'`
wollte ich nur wissen, warum das direkt im Perl geht, aber als
shell nicht. Eingesetzt macht das ja eh keinen Sinn, wenns ja direkt im Shell geht.

in dem Sinn Danke für Eure Hilfe (:

PET
<< |< 1 2 >| >> 13 Einträge, 2 Seiten



View all threads created 2005-04-27 20:58.