Anmelden

Archiv verlassen und diese Seite im Standarddesign anzeigen : [Hilfe] Bash-Scriptproblem



NewbiePete
06-02-2005, 18:35
Hallo Forum,

ich habe ein kleines Script schreiben wollen, das mir das Programmieren in C erleichtert ( eigentlich ist es nur ein Alibiscript, weil ich nebenbei die Scriptprogrammierung lernen möchte ). Das Script sieht folgendermaßen aus :

#!bin/bash

if $# = 0
then

echo "wechsel Verzeichnis ...

cd /home/Peter/C-Source

echo "verzeichnis gewechselt"

fi

Ich weiß jetzt nicht ob dieses Script so syntaktisch rictig ist, ber der Teil mit dem cd Befehl ist der um den es mir geht. Und zwar habe ich das Problem, das wenn ich das Script aufrufe ( ohne Parameter ) dann schreibt er mir zwar die echos auf den Schirm, aber der CD Befehl wird nicht ausgeführt, zumindest nicht in dem Fenster wo ich das Script aufgerufen habe. Nun habe ich schon viele Hilfen durchgelesen und habe somit erfahren, das der Befehl zwar ausgeführt wird aber in einer anderen Shell. Ich habe schon probiert mit alias oder mit .cd usw. aber alles hilft nicht. Ich brauche den cd Befehl aber in der Shell in der das Script aufgerufen wird. Kann mir einer Helfen, ich bin am verzweifeln ...


vielen Dank schonmal ...

Pete

peschmae
06-02-2005, 18:55
Was genau macht das da? Sowas hab ich noch nie gesehen.
if $# = 0

Wegen der Shell: Wenn du dein Script mit
. script.sh
(Punkt-Leerschlag-Scriptname) oder auch mit
source script.sh
ausführst dann geht das. Von innerhalb des Scripts kannst du diesbezüglich nichts machen.

MfG Peschmä

NewbiePete
06-02-2005, 19:01
danke, werde ich probieren, dann habe ich das mit dem source kommando falsch verstanden. Dann macht das mit dem alias auch sinn

alias compile "source compile"

compile ist der Scriptname ...

die if anweisung am Anfang sagt aus, das er die Anzahl der übergebenen Argumente mit 0 vergleichen soll $# ist Anzahl der Argumente und $1, $2 usw.
ist das jeweilige Argument selbst ... zumindest hat es so funktioniert ....


Wie gesagt, vielen Dank für die schnelle Antwort ich hoffe jetzt klappt es so wie es soll ...


Gruß

Pete

NewbiePete
06-02-2005, 19:22
Hallo nochmal,

hat leider nicht geklappt, wenn ich mein Script mit source aufrufe ( source compile oder . compile ), dann schließt sich meine Konsole ... woran kann das liegen ???

Gruß

Pete

peschmae
06-02-2005, 21:08
Keine Ahnung das sollte der eigentlich nicht machen. :)
Tut er das bei jeder Konsole (Also X-Terminal Emulatoren und auch auf der richtigen Konsole)?

MfG Peschmä

Hans-Georg Normann
06-02-2005, 21:09
zeog doch einmal deinen Code, denn sonst müssen wir raten.

Hans

anda_skoa
06-02-2005, 22:32
Am Besten du machst den Compiler Aufruf auch im Script, dann kannst du es einfach ausführen und musst es nicht sourcen.
Hat auch den Vorteil, dass du im Script irgendwelche projektspezifischen Variablen setzen kannst, ohne das Environment der aktuellen Shell zu verändern.

Ciao,
_

NewbiePete
07-02-2005, 16:36
Hallo,

das Problem bei dem Script war einfach nur, das ich ( wie von C gewöhnt ) am Ende ein exit(0) angegeben habe. Mich hat halt gewundert, das sich das Terminal nach Aufruf mit Source plötzlich schloss.

Aber jetzt funktioniert es einwandfrei.

Danke nochmals für die schnelle Hilfe


Gruß

Pete

NewbiePete
07-02-2005, 16:41
Am Besten du machst den Compiler Aufruf auch im Script, dann kannst du es einfach ausführen
_


Hi, anda_Skoa

ich habe den Compileraufruf im Script, mir ging es nur darum, mir das Programmieren zu erleichtern. Und zwar wollte ich mir ein Script basteln, welches ich mit Parametern aufrufen kann.

z.B. wenn ich sage compile test test.cpp dann wird automatisch der gcc -o mit den Parametern test und test.cpp aufgerufen.
Oder was auch wichtig war, wenn ich das script ( Name: compile ) ohne Parameter aufrufe, dann sollte er mit einem cd Befehl automatisch zu meinem Sourcecode verzeichnis springen ... und genau da lag der Hase im Pfeffer. Das hat er vorher nicht getan, erst als ich ein source vor den Scriptnamen geschrieben habe ...


Gruß

Pete