[Gelöst] Ausführen von selbstgebastelten Bash-Scripts

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
raa
Beiträge: 411
Registriert: 19.12.2013 10:16:19

[Gelöst] Ausführen von selbstgebastelten Bash-Scripts

Beitrag von raa » 09.02.2015 22:32:33

Hallo,

mein System (Wheezy) macht mir da neuerdings Probleme - oder habe ich ihm welche gemacht ... Manche Scripte laufen einfach, wie sich das gehört - bei anderen kommt die Meldung:

Code: Alles auswählen

bash: backup.sh: Kommando nicht gefunden.
Hä? Und das auch als Root. Erstellt hab' ich's als User, auch ausführbar gemacht, und es beginnt wie üblich mit der Zeile:

Code: Alles auswählen

#!/bin/bash
Nur wenn ich's im Dateimanager (bei mir "Gnome Commander") anklicke (rechte Maustaste) :wink: und "Ausführen" wähle, läuft's, aber nur in so einem "marginalen" Fenster:

Bild
Zuletzt geändert von raa am 10.02.2015 11:57:34, insgesamt 1-mal geändert.

Benutzeravatar
Meillo
Moderator
Beiträge: 9236
Registriert: 21.06.2005 14:55:06
Wohnort: Balmora
Kontaktdaten:

Re: Ausführen von selbstgebastelten Bash-Scripts

Beitrag von Meillo » 09.02.2015 23:13:33

Vermutlich hast du `.' nicht in PATH.

Versuch mal ``./backup.sh''!
Use ed once in a while!

raa
Beiträge: 411
Registriert: 19.12.2013 10:16:19

Re: Ausführen von selbstgebastelten Bash-Scripts

Beitrag von raa » 09.02.2015 23:38:05

Komisch, und warum läuft dann sowas (im Menü und / oder im Panel, jedenfalls erst mal als "/home/hk/.local/share/applications/*.desktop" angelegt):

Code: Alles auswählen

/home/hk/data/backup.sh

Code: Alles auswählen

einstart 'gksu --message Shutdown ~/off.sh shutdown'
Und noch "raffiniertere" Dinger ... Wenn ich mir das heute so angucke, erschrecke ich vor dem, der ich mal gewesen sein muss. :wink:

Code: Alles auswählen

#!/usr/bin/env xdg-open
[Desktop Entry]
Version=1.0
Type=Application
Exec=gnome-terminal -t '[MySql-Server starten] - Terminal' -e '/home/hk/DB/mysqlserver.sh start'
Name=[Gestoppt] MySQL-Server starten
Icon=/home/hk/DB/database-red-icon.png

Benutzeravatar
Meillo
Moderator
Beiträge: 9236
Registriert: 21.06.2005 14:55:06
Wohnort: Balmora
Kontaktdaten:

Re: Ausführen von selbstgebastelten Bash-Scripts

Beitrag von Meillo » 09.02.2015 23:55:17

In all diesen Faellen hast du die Pfade zur Datei angegeben. Wenn dagegen im ersten Wort der Befehlszeile (d.h. dem Progammnamen) kein Slash ist, dann geht die Shell PATH durch und sucht in jedem dieser Verzeichnisse nach einer ausfuehrbaren Datei mit diesem Namen. Um das Script im aktuellen Verzeichnis zu starten musst du ein ``./'' (Punkt-Slash) voranstellen.

... oder habe ich dein Problem noch nicht richtig verstanden?
Use ed once in a while!

raa
Beiträge: 411
Registriert: 19.12.2013 10:16:19

Re: Ausführen von selbstgebastelten Bash-Scripts

Beitrag von raa » 10.02.2015 08:39:43

Meillo hat geschrieben:In all diesen Faellen hast du die Pfade zur Datei angegeben. Wenn dagegen im ersten Wort der Befehlszeile (d.h. dem Progammnamen) kein Slash ist, dann geht die Shell PATH durch und sucht in jedem dieser Verzeichnisse nach einer ausfuehrbaren Datei mit diesem Namen.
Danke, jetzt ist es klar. Ich dachte, im aktuellen Verzeichnis müsste die Shell eine ausführbare Datei auch so finden. Das war also ein typischer Fall von "Denkste". :wink:

Benutzeravatar
Meillo
Moderator
Beiträge: 9236
Registriert: 21.06.2005 14:55:06
Wohnort: Balmora
Kontaktdaten:

Re: Ausführen von selbstgebastelten Bash-Scripts

Beitrag von Meillo » 10.02.2015 08:44:30

raa hat geschrieben: Danke, jetzt ist es klar. Ich dachte, im aktuellen Verzeichnis müsste die Shell eine ausführbare Datei auch so finden.
Das wuerde sie auch, naemlich dann wenn du das aktuelle Verzeichnis in PATH aufnimmst ... was aber aus Sicherheitsgruenden nicht zu empfehlen ist.
Das war also ein typischer Fall von "Denkste". :wink:
;-)

Hat sich dein Problem damit dann geloest? Falls das so ist, dann bitte den ersten Posts im Thread aendern und dem Titel ein ``[geloest]'' o.ae. hinzufuegen.
Use ed once in a while!

raa
Beiträge: 411
Registriert: 19.12.2013 10:16:19

Re: Ausführen von selbstgebastelten Bash-Scripts

Beitrag von raa » 10.02.2015 11:08:03

Meillo hat geschrieben:
raa hat geschrieben: Danke, jetzt ist es klar. Ich dachte, im aktuellen Verzeichnis müsste die Shell eine ausführbare Datei auch so finden.
Das wuerde sie auch, naemlich dann wenn du das aktuelle Verzeichnis in PATH aufnimmst ... was aber aus Sicherheitsgruenden nicht zu empfehlen ist.
Das hast du mir doch selber empfohlen. Welche Sicherheitsbedenken sind dir da nun plötzlich gekommen?

Benutzeravatar
Meillo
Moderator
Beiträge: 9236
Registriert: 21.06.2005 14:55:06
Wohnort: Balmora
Kontaktdaten:

Re: Ausführen von selbstgebastelten Bash-Scripts

Beitrag von Meillo » 10.02.2015 11:15:56

raa hat geschrieben:
Meillo hat geschrieben:
raa hat geschrieben: Danke, jetzt ist es klar. Ich dachte, im aktuellen Verzeichnis müsste die Shell eine ausführbare Datei auch so finden.
Das wuerde sie auch, naemlich dann wenn du das aktuelle Verzeichnis in PATH aufnimmst ... was aber aus Sicherheitsgruenden nicht zu empfehlen ist.
Das hast du mir doch selber empfohlen. Welche Sicherheitsbedenken sind dir da nun plötzlich gekommen?
Ich habe dir das empfohlen? 8O Wann und wo?
Use ed once in a while!

raa
Beiträge: 411
Registriert: 19.12.2013 10:16:19

Re: Ausführen von selbstgebastelten Bash-Scripts

Beitrag von raa » 10.02.2015 11:30:20

Meillo hat geschrieben:Ich habe dir das empfohlen? 8O Wann und wo?
Ok, du hast nur geschrieben:
Meillo hat geschrieben:Vermutlich hast du `.' nicht in PATH.
Ok, das war keine Empfehlung, das aktuelle Verzeichnis in PATH aufzunehmen, das hab' ich nach deinen Erklärungen nur so interpretiert. Also welche "Sicherheitslücke" könnte ich damit öffnen? Wenn es einem gelänge, mein System zu "knacken", um "böse" Programme auzuführen, wäre das wohl kein Hindernis mehr, dass er auch den Pfad angeben muss, in dem sie stehen. Wenn - aber dazu muss er erst mal 'reinkommen. :wink:

Benutzeravatar
4A4B
Beiträge: 962
Registriert: 09.11.2011 11:19:55
Kontaktdaten:

Re: Ausführen von selbstgebastelten Bash-Scripts

Beitrag von 4A4B » 10.02.2015 11:45:26

Du entpackst ein Archiv, welches du irgendwo heruntergeladen hast, wechselst mit `cd` in das entpackte Verzeichnis und willst dir mit `ls` den Inhalt desselben anzeigen lassen. Dummerweise befindet sich in dem Verzeichnis ein Script ls, das etwas ganz andere tut...

Liffi
Beiträge: 2345
Registriert: 02.10.2004 01:33:05

Re: Ausführen von selbstgebastelten Bash-Scripts

Beitrag von Liffi » 10.02.2015 11:46:20

Die größte Gefahr ist, wenn . im PATH höher ist als die 'normalen' bin Verzeichnisse. Dann kommt der von 4A4B angesprochene Fall zum tragen.

Benutzeravatar
Meillo
Moderator
Beiträge: 9236
Registriert: 21.06.2005 14:55:06
Wohnort: Balmora
Kontaktdaten:

Re: Ausführen von selbstgebastelten Bash-Scripts

Beitrag von Meillo » 10.02.2015 11:47:49

raa hat geschrieben:
Meillo hat geschrieben:Ich habe dir das empfohlen? 8O Wann und wo?
Ok, du hast nur geschrieben:
Meillo hat geschrieben:Vermutlich hast du `.' nicht in PATH.
Ok, das war keine Empfehlung
Genau. Das war nur der Grund, weshalb es nicht so funktioniert hat wie du dachtest, dass es tut. Ob es so funktionieren soll, ist eine andere Frage. ;-)
Use ed once in a while!

raa
Beiträge: 411
Registriert: 19.12.2013 10:16:19

Re: Ausführen von selbstgebastelten Bash-Scripts

Beitrag von raa » 10.02.2015 11:56:46

Meillo hat geschrieben:Ob es so funktionieren soll, ist eine andere Frage. ;-)
Ähm, nee, lieber nicht:
4A4B hat geschrieben:Du entpackst ein Archiv, welches du irgendwo heruntergeladen hast, wechselst mit `cd` in das entpackte Verzeichnis und willst dir mit `ls` den Inhalt desselben anzeigen lassen. Dummerweise befindet sich in dem Verzeichnis ein Script ls, das etwas ganz andere tut...
Ok, bin überzeugt. :wink:

Antworten