Archiv verlassen und diese Seite im Standarddesign anzeigen : #!/usr/bin/irgendwas (Interpreter aufrufen)
Hans-Georg Normann
12-02-2004, 22:28
Gibt es eigentlich einen Möglichkeit, einen interpreter in Abhängigkeit von irgendwelchen Bedingungen zu starten?
if -f /usr/bin/python2.3; then
#!/usr/bin/python2.3
else
#!/usr/bin/python
fi
Der Hintergrund. Ich habe Python 2.2 und Python 2.3 istalliert. Einige Konfigurationsscripte von Fedora und yum verlangen zwingend nach Version 2.2. Oder Muß die Interpreterangabe gar in der ersten Zeile des Scripts stehen?
Hans
Christoph
13-02-2004, 08:44
#! muss in der ersten Zeile stehen.
Bei Perl Scripten habe ich aber schonmal einen Trick gesehen wie das ohne #! geht (Habe leider kein Beispiel parat).
Eine Idee wäre, dass das Script sich selber aufruft (gibt's in Python sowas wie exec?) mit einem Parameter, bei dem der Initialisierungscode übersprungen wird.
peschmae
13-02-2004, 10:58
Bei Bashburn fehlt aus ähnlichen Gründen der Shebang - irgendwie wird das dann anders gemacht.
Der Grund ist dort, dass auf xBSD-Systemen die Bash nicht Standard-Shell ist und deshalb jeweils (per Ports) nach /usr/local/bin/bash installiert wird. Da würde dann /usr/bin/bash nicht stimmen...
MfG Peschmä
Mit einem HERE-Dokument? Bei perl scheint das zu funktionieren.
#!/bin/bash
if [ -f /usr/bin/perl ]
then PERL=/usr/bin/perl
fi
if [ -f /bin/perl ]
then PERL=/bin/perl
fi
$PERL <<ENDE_SCRIPT
# Das Programm
ENDE_SCRIPT
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.