Ein kleines Script

Hallo Wissender,

Ich versuche gerade ein kleines Script zu schreiben, daß mir den
Alltag etwas erleichtern soll.
Die einzige Aufgabe, die es haben soll:

  • Öffnen eines Konsolenfensters und Ausführen von des Kommandos
    „giftd“
  • wenn dieses läuft, Öffnen einer weiteren Konsole und Ausführen von
    „giFTcurs“

Leider habe ich bisher fast null Ahnung von Programmierung. Im Moment
sieht das Script so aus:

#!/bin/sh
giftd
konsole; giFTcurs

Das funzt aber nicht. Wenn ich es starte, wird nur der „giftd“-Befehl
ausgeführt.

Kennst Du die Lösung?

Im Voraus Danke!

Gruß, Flachs

Hallo Flachs,

ich vermute mal, giftd ist ein deamon, der im Hintergrund laufen soll?
Dann wartet dein Script, bis giftd wieder beendet wird.

#!/bin/sh
giftd **&**
# das & bewirkt die Ausführung im Hintergrund
# Test ob giftd läuft
giFTcurs 

Noch eine Bemerkung zu dem 2. Kommentar: ich hab jetzt kein Linux da, deswegen nur der Hinweis. Ich würde mit „ps | grep giftd“ ansetzen und dann auswerten - so aus dem Stegreif.

Viel Spaß noch beim Basteln

Gruß
Ijon_Tichy

Hulla,

weis nicht ob Dir das reicht.:

#!/bin/sh
xterm -e giftd &
xterm -e giFTcurs &

die datei 755 chmod’en und nach ~/bin/ legen, danach evtl ein >>rehash>jobs holt sie in den Vordergrund … usw siehe manpage)

es gibt noch &&
Wenn Du ein && hinter dein Befehl stellst wird der darauffolgende erst ausgefuehrt wenn der davor erfolgreich abgeschlossen ist. zb. cd /home/frank && ls -la . gibt den inhalt nur aus wenn du erfolgreich in das homedir von frank gewechselt bist, wuerden dir zb die rechte fehlen wuerde die shell ls -la nie ausfuehren.

zum ;
eher ein gegenteil (was du in deinem script benutzt hast ist) ;
cd /home/frank ; rm -rf * - koentte nun 2 wege nehmen. falls du erfolgreich ins verzeichniss gewechselt bist wuerde der rm befehl versuchen alles drin zu loeschen. waere der erste befehl aber nun nicht erfolgreich, dh du koenntest nicht ins verzeichniss wechseln, wuerde die shell trotzdem den rm -rf befehl ausfuehren. dh. ; sorgt dafuer das die shell versucht den befehl dahinter auf jeden fall auszufuehren.

Du koenntest bei deinem Script parameter benutzen.

$1 ist der erste , $2 der zweite im shellscript.

#!/bin/sh
xterm -e $1 &
xterm -e $2 &

und $exec2inbg.sh joe lynx
in der shell wuerde 2 konsolen oeffnen, mit lynx und joe.

und nun viel spass

inty

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]