Stefan Welscher: (PERL)Perl Scripte ohne vorangestelltes "perl" ausführen?

Hallo SelfHTML,
ich haben hier einen Rechner für den leider keiner mehr so richtig zuständig ist und auf dem ich unsere Perl-Scripte ohne das Voranschreiben von "perl" starten kann.
Also z.B. "/opt/vpn/Wartungsskripte>conf_ce_ibgp.pl" anstatt "/opt/vpn/Wartungsskripte>perl conf_ce_ibgp.pl".

Jetzt habe ich einen neuen Rechner auf dem ich das ebenfalls einrichten will, weiß aber nicht wie. Und wie gesagt gibt es keinen Ansprechpartner mehr für den alten PC.

Es müssten also unter Bash alle Scripte mit der Endung ".pl" mit "/usr/bin/perl" gestartet werden.

Wer kann mir sagen, wie ich das einrichte?

  1. moin,

    Es müssten also unter Bash alle Scripte mit der Endung ".pl" mit "/usr/bin/perl" gestartet werden.

    1. shebang einrichten, erste Zeile im Script:
    #!/usr/bin/perl

    (falls der pfad stimmt)

    2. Script ausführbar machen, z.b. chmod 755 script.pl

    Im aktuellen Verzeichnis so aufrufen:
    ./script.pl

    Ansonsten mit vollem Pfad aufrufen (wichtig in der crontab)

    --roro

      1. shebang einrichten, erste Zeile im Script:
        #!/usr/bin/perl

      Ist drin...

      1. Script ausführbar machen, z.b. chmod 755 script.pl

      Im aktuellen Verzeichnis so aufrufen:
      ./script.pl

      OK, so würde es gehen, allerdings muss ich das "./" auf der anderen Kiste nicht mit angeben. Gibt es hier einen Unterschied zwischen Solaris und Linux?

      1. gudn tach!

        OK, so würde es gehen, allerdings muss ich das "./" auf der anderen Kiste nicht mit angeben. Gibt es hier einen Unterschied zwischen Solaris und Linux?

        wahrscheinlich war auf der einen kiste "." in der umgebungsvariable path enthalten und in der anderen ist das nicht so.

        wenn du also noch "." dem path hinzufuegst, sollte das gewuenschte verhalten einstellen.

        prost
        seth

        1. gudn tach!

          wenn du also noch "." dem path hinzufuegst, sollte das gewuenschte verhalten einstellen.

          ich habe vergessen, den dazu wichtigen sicherheits-hinweis zu geben.
          setze den punkt an das ende der variable path, damit die standardbefehle standardbefehle bleiben. (siehe auch http://www.linuxfibel.de/securesystem.htm#path).

          prost
          seth

          1. gudn tach!

            wenn du also noch "." dem path hinzufuegst, sollte das gewuenschte verhalten einstellen.

            ich habe vergessen, den dazu wichtigen sicherheits-hinweis zu geben.
            setze den punkt an das ende der variable path, damit die standardbefehle standardbefehle bleiben. (siehe auch http://www.linuxfibel.de/securesystem.htm#path).

            prost
            seth

            So geht es! Super! Einwandfrei! 1000 Dank!

            Gruß,
            Stefan

      2. moin,

        ./script.pl

        OK, so würde es gehen, allerdings muss ich das "./" auf der anderen Kiste nicht mit angeben. Gibt es hier einen Unterschied zwischen Solaris und Linux?

        Es gibt Unterschiede in den Shells. Wenn die Shell eine bash ist, geht das Ausführen im aktuellen Verzeichnis mit ./script.pl

        Die bash gibts auch auf Solaris.

        Und wie gesagt; In der Crontab Stets den vollen Pfad notieren, im Zweifelsfalle auch mit vorangestelltem Perl-Interpreter:

        /usr/bin/perl /home/fuzzi/scripts/superscript.pl # geht immer

        --roro

  2. Hallo,

    Shebang.

    gruss

    --
    Swiss Army Chainsaw
    Terrorific!
    VI VI VI - the editor of the beast!