Hallo Hermann Riemann,
Du schriebst am Mon, 27 Jun 2022 07:16:08 +0200:
> >>> Meist starte ich es mit
> >>> ./script.py
> >>
> >> Dann ist der Anhang .py für die Ausführung überflüssig.
> >
> > HAst Du das mal selber ausprobiert?
> > Wenn das Script "script.py" heißt, dann muß (MUSS) es auch so
> > aufgerufen werden.
>
> Und wenn es nur script heisst
> reicht ./script
Ja, aber dann heißt es eben _NICHT_ "script.py" - äh, naja...
> Probiere eine Datei z.B. p
...
> dann chmod 755 p
> dann ./p
Naja, gibt halt'n "Hallo" aus. Isja richtig so.
> Ohne chmod 755 p
Also:
-rw-r--r-- 1 34 Jun 27 20:27 p
?
> und mv p p.py
> erhalte ich bei ./p.py die Meldung:
> bash: ./p.py: Keine Berechtigung
Was hast'n Du für ne komische Shell am Laufen? Bei mir:
$ mv p p.py
$
und
ls p*
p.py
$
ganz normal wie zu erwarten. Du machst was falsch.
> >> nun mache dann softlinks von $HOME/bin nach eigenem_Verzeichnis.
> >> Wobei ich in $HOME/bin die Typ Zusätze wie .py .sh weglasse.
> >
> > Ja, _denn_ (und nurdann) kannst Du nicht nur die "Zusätze"
> > weglassen, sondern _mußt_ die weglassen.
>
> Dass müssen ist falsch.
Nicht bei (jeder) "normalen" Shell. Da wird (ist?) bei Dir was
manipuliert, und das kann u.U. schlimme Folgen haben. Oder das sind
schon Auswirkungen davon.
> Dass ich die Endungen von Dateien in $HOME/bin weg lasse,
> hat sich als praktisch für mich gezeigt.
Reine Schreibvereinfachung. Kann auch mal zu Kollisonen führen, wenn
man nicht aufpasst.
> Fazit: der Zusatz wie py ist nur für Lesbarkeit, compiler Eingaben
> und nach meiner Vermutung GUIs und Programme wie Apache relevant.
Sicher - der ist nur ein äußerlicher Hinweis darauf, was in der Datei
enthalten sein _KÖNNTE_.
> Relevant ist der header, auch bei Bilder, übersetzte Objekte
> bzw #! in erster Textzeile.
Solange eine (konforme) Shell oder der Kernel selber die Zeile (oder
die Daten) auswerten.
> Datei p.c
...
> cc p.c
> mv a.out a.png
gcc kann die Umbenennung gleich mit erledigen. Aber das ist Dir wohl zu
einfach, oder Du müßtest zuviel im Compiler-Aufruf tippseln...
> ./a.png
> funktioniert.
Klar, ist ja ein normales ELF-Programm.
> Wenn man die Datei sich mit firefox ansieht:
> meint firefox, sie enthält eine fehlerhafte Grafik.
Firefox ist keine Shell, der versucht alles selber zu erkennen und
benutzt dazu völlig andere Regeln (MIME).
> mv a.png $HOME/bin/a.png
> dann kann a.png aufgerufen werden.
Von Firefox? Naja, _könnte_ sein, wenn da eine passende .htaccess
drinsteht. Von Dir, ohne Pfadangabe? Nur, wenn Dein $PATH dein privates
("$HOME/bin") bin-Directory enthält.
> mv $HOME/bin/a.png a.c
> cc a.c
> ...
Na, da wird's jetzt leicht chaotisch - erst komplizierst^Wkompilierst
Du eine p.c in eine a.png, dann schiebst Du die in Deinem home 'rum,
und dann willst Du die schon kompilierte Datei nochmal kompilieren -
aber das Ergebnis läßt Du vorsichtshalber weg, das kann nämlich nur
eine Fehlermeldung sein.
> >> chmod 755 ist nur für die script Dateien im eigenem Verzeichnis
> >> notwendig.
>
> Damit habe ich gemeint das die Attribute bei link-Verweise
> z.B. in $HOME/bin ignoriert wird.
Dann schreib' das gefälligst auch. Woher sollen andere wissen, was Du
"gemeint" hast? Links benutzen _grundsätzlich_ die Rechte der
verlinkten Datei, und wenn Du versuchst, die Rechte am Link zu ändern,
dann werden die Rechte der verlinkten Datei geändert, falls Du das
Recht dazu hast.
> > Ein "chmod", das das "x"- (ausführen) Attribut setzt. ist
> > grundsätzlich nötig, wenn das Script eigenständig (d.h. ohne Angabe
> > eines interpretierenden Programms) ausgeführt werden soll. Und dann
> > ist die o.g. erste Zeile mit der "#!" relevant (soweit sie vom
> > Aufruf der laufenden "shell" abweicht).
>
> Korrekt.
Ächt? (Wobei man schon bald skeptisch sein muß, wenn Du was als
korrekt bezeichnest...)