Forum: PC-Programmierung Linux Bash Programierung


von Klatec (Gast)


Lesenswert?

Hallo Zusammen

Ich möchte so wie in Windows eine *.bat Datei ausführen und habe im Netz 
folgendens Beispiel gefunden

#!/bin/bash
echo "Hello World"

Diesen Inhalt habe ich in eine Datei (hallo.sh) geschrieben und wenn ich 
diese ausführe kommt immer die Fehlermeldung
bash: hallo.sh Kommando nicht gefunden.

Was mache ich falsch. Ich erbitte mir eure Hilfe. Danke.

Lg.
Johann K.

von Peter II (Gast)


Lesenswert?

starte mal mit "./hallo.sh"

von Martin (Gast)


Lesenswert?

Klatec schrieb:

> Diesen Inhalt habe ich in eine Datei (hallo.sh) geschrieben und wenn ich
> diese ausführe kommt immer die Fehlermeldung
> bash: hallo.sh Kommando nicht gefunden.
>
> Was mache ich falsch. Ich erbitte mir eure Hilfe. Danke.

Das Verzeichnis, in dem du bist, ist nicht in $PATH, wo ausführbare 
Programme gesucht werden.

Die bash sucht sozusagen überall, nur nicht direkt vor der Nase. :-)

Die Lösung von Peter II ist richtig. Ebenso könntest du "bash hallo.sh" 
eingeben oder dein aktuelles Verzeichnis dem $PATH hinzufügen.

Letzteres laß aber lieber sein, wenn du dich damit nicht auskennst.

von Martin (Gast)


Lesenswert?

Ach ja, für "./hallo.sh" muß die Datei als ausführbar markiert sein. 
Gegebenenfalls "chmod u+x hallo.sh" machen.

von Andreas D. (rackandboneman)


Lesenswert?

Du kannst auch "." an PATH anhängen. Aber es gibt gute Gründe warum man 
das per Standard bleiben lässt - auf einem Multiusersystem/Server könnte 
man sonst viel zu leicht jemanden ein Programm unterschieben was statt 
einem erwarteten/nicht installierten ausgeführt wird!

Ausserdem muss die Datei execute-Rechte haben, oder mit "sh hallo.sh" 
ausgeführt werden.

PS wie "#!/bin/bash" funktioniert erkennt man ganz schnell wenn man ein 
(ersetzbares!) Skript mal mit "#!/bin/rm" beginnt :)

von Andreas D. (rackandboneman)


Lesenswert?

PS Skripte die soweit fertig sind dass man sie ohne besondere 
Aufmerksamkeit auf dem Rechner nutzen kann bewahrt man traditionell in 
/usr/local/bin auf, das ist idR auch in PATH drin.

PPS die Variable $PATH zu nennen ist eher verwirrend für Anfänger; das 
ist die Syntax um die Variable PATH zu lesen und nicht der Name der 
Variable.

von Klatec (Gast)


Lesenswert?

Danke für eure Antworten

Mit dem Vorschlag vom Martin ("./hallo.sh") hat's funktioniert. Danke.

Irgend wie bereuhe ich meine Entscheidung mich mit Embedded Linux zu 
beschäftigen. Ist ein gewaltiger Sprung von 80C51 auf ARM, aber jetzt 
muss ich da durch, halt mit kleinen Schritten und der erste ist die 
Automatisierung des Compilers durch Aufruf des Files.
Lg.
Johann K.

von Andreas D. (rackandboneman)


Lesenswert?

Du kennst make?

von Klatec (Gast)


Lesenswert?

Nein, ich habe es gerade mal geschaft die example.c die dem Board 
beiliegt zuladen. Ich habe mir ein Embedded linux Buch gekauft und hoffe 
das mich dies einige Schritte weiter bringt.

von resterampe (Gast)


Lesenswert?

make:
http://www.pronix.de/pronix-1187.html
Compiler und IDE:
http://www.pronix.de/pronix-948.html

Klatec schrieb:
> Irgend wie bereuhe ich meine Entscheidung mich mit Embedded Linux zu
> beschäftigen. Ist ein gewaltiger Sprung von 80C51 auf ARM, aber jetzt
> muss ich da durch
Ist auch schon ein heftiger Sprung, wie hast du es geschafft nie ein 
Makefile zu sehen? Immer nur mit IDE gearbeitet? ;-)

Wenn du zu Linux passt, wirst du es nicht bereuen und irgendein 
Linux wird auf deinem Desktop landen... ;-)

von Klatec (Gast)


Lesenswert?

Habe auf einem eigem Notebook Linux (Debian wurde von Taskit 
vorgeschlagen - von dort habe ich mein Board) installiert.
Den 80Cxxx habe ich mit dem Keil PK51 bearbeitet. Die Baugruppen stammen 
von 1999 (selbst entwickelt), die habe ich 2008 wieder vorgeholt und 
noch über einem Epromsimulator das Programm geladen.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.