Linux Datei ausführbar machen?

... komplette Frage anzeigen

4 Antworten

da musst du die PATH-Variable ändern.

PATH enthält normalerweise die Verzeichnisse, in denen das System nach Binaries oder ausführbaren Script-Dateien sucht.

Wenn also dein PWD einbezogen  werden soll, dann erweitere die PATH-Variable ( in /etc/profile und/oder /etc/bash.bashrc ) durch

export PATH=$PATH:./ 

wobei das nicht immer zu empfehlen ist. Je nach Reihenfolge wird dann u.U. ein Programm-Name benutzt, der in $PWD liegt, so dass das "richtige" Binary nicht benutzt werden kann. Das müsste man dann z.b. mit /usr/bin/<Name> aufrufen, was noch lästiger ist als ./<Name> .

Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von gerlochi
04.12.2015, 14:33

danke

0

Neben den Ideen aus den anderen Antworten kannst du auch ein Alias verwenden.

Dazu musst du an das Ende der Datei ~/.bashrc (die in deinem Home-Verzeichnis liegt, aber wegen dem führenden Punkt oft nicht angezeigt wird) Folgende Zeile anhängen:

alias foo='/ganzer/pfad/nach/foo.sh'

Diese Änderung wird bei der nächsten Shell-Session aktiv, oder du tippst einfach schnell ...

source ~/.bashrc

... hinterher, um die Änderungen zu übernehmen.

Fortan kannst du dein Skript ausführen, indem du einfach nur "foo" eingibst, bzw. das, was du als Alias gewählt hast. Die Datei musst du dazu auch nicht irgendwo hinkopieren oder auf Pfade in $PATH Rücksicht nehmen.

Für welche der vielen genannten Lösungen du dich letzendlich entscheidest, musst du dann selbst wissen. :)

Viel Spaß damit! :)

Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von gerlochi
04.12.2015, 14:33

danke

1

Shell-Scripte speichert man mit der Endung programmname.sh. Als Pfad nimmt man am /usr/local/bin dort speichert man die Shell-Scripts ab.

Da ja /usr/local/bin automatisch durchgesucht wird, reicht es wenn du einfach nachdem es ausführbar gemacht wurde mit "programmname.sh" aufrufst.

Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von spaghetticode
04.12.2015, 07:02

Das funktioniert nur, wenn das Script in einem der Verzeichnisse liegt, die automatisch durchsucht werden (im Windows-Duktus: PATH). Du musst also dein Script entweder in eines dieser Verzeichnisse legen (wie es mrlilienweg beschreibt), oder das jetzige Verzeichnis der Umgebungsvariablen hinzufügen (unter Linux eher unüblich). Die Zeichenfolge "./" bedeutet sinngemäß: "Suche im aktuellen Verzeichnis".

1
Kommentar von guenterhalt
04.12.2015, 12:46

Shell-Scripte speichert man mit der Endung programmname.sh.

das kann man so machen. So wie du, @mrlilienweg , das hier formulierst, hört sich an wie Pflicht.
So ist es keinesfalls. Namen sind unter Linux frei wählbar.
Man muss nur aufpassen, dass man nicht den Namen eines bereits existierenden Programms wählt. Sollte das eigene Script-Programm früher gefunden werden ( Reihenfolge in der Variablen PATH), dann kann man das andere nur noch mit vollem Pfad starten.

2
Kommentar von gerlochi
04.12.2015, 14:34

danke

0

@Gerlochi

Versuch doch mal bei der Ausführung des Shellskriptes das "/" wegzulassen - Beispiel: . Shellskript

Meine Shellskripte starte ich immer ohne "/"...

LA

Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von guenterhalt
04.12.2015, 12:51

das ist nicht zu empfehlen.  Ein solcher Aufruf wird im Normalfalle gleich das Terminal beenden.

1
Kommentar von gerlochi
04.12.2015, 14:34

danke trotzdem

0

Was möchtest Du wissen?