Hallo Patrick, hallo Bernhard, hallo Leute, Am Sonntag, 30. November 2003 15:45 schrieb patrick dahl:
Am Son, 2003-11-30 um 13.14 schrieb Bernhard Walle:
Nimm Deinen Lieblingseditor und erstelle eine Datei $HOME/bin/cube:
#!/bin/sh
cd /path/to/games exec ./linux_client -w1024 -h768 $* [...] Danke, das mit dem shell-Script lief auf anhieb. Habe in /bin/cube.sh
Dort sollte es eigentlich nicht liegen. /bin ist für grundlegende Programme gedacht, nicht aber Scripte, um ein Spiel zu starten. Geschickter wäre /usr/local/bin/ (für systemweit verfügbare eigene Scripte) oder $HOME/bin/ (für Scripte, die nur ein User nutzt) $HOME ist übrigens nix anderes als Dein Homeverzeichnis, also /home/irgendwer/ Überprüfen kannst Du das auch mit echo $HOME
#!/bin/sh
cd .. cd .. cd home/foxy/games exec ./linux_client -w1024 -h768 $* ---
'cd ..', weil ich aus /bin/cube rauskommen musste.
Du könntest auch einfach cd /home/foxy/games ausführen, also mit "/" am Anfang des Verzeichnisnamens.
[...] ist '$*' z.B. vergleichbar mit einem 'end.' in Delphi? ;)
Ich kenne Delphi nicht, aber mit "end" hat das wohl nix zu tun. $* enthält alle Parameter, mit denen das Script aufgerufen wurde. Wenn Du das Script also mit cube x y z aufrufst, steht in $* der Text x y z Da fällt mir gerade auf: Du solltest Dir lieber die Verwendung von "$@" angewöhnen (_mit_ den Anführungszeichen!), damit die Parameter einzeln bleiben und trotzdem keine Probleme mit Leerzeichen in einem Parameter auftreten. Beispiel: cube a "b c" d Damit gibt es 3 Parameter: - a - b c (mit dem Leerzeichen, aber ohne die Anführungszeichen, die werden von der bash entfernt) - d Mit dem Aufruf (innerhalb Deines Scripts) testscript $* splittest Du den zweiten Parameter auf, sodass testscript dann 4 (!) Parameter sieht, nämlich a, b, c und d. Wenn Du testscript "$*" aufrufst, werden alle Parameter zu einem. testscript sieht dann a b c d als _einen_ Parameter. Nur die Lösung mit testscript "$@" gibt die Parameter fehlerfrei weiter. An einzelne Parameter kommst Du übrigens mit echo "$1" für den ersten Parameter. Entsprechend "$2" für den zweiten usw. Lesetip: man bash (keine Angst, musst Du nicht komplett lesen ;-) Dort nach ^ *Special parameters suchen, also /^ *Special parameters und Return eintippen. Raus kommst Du übrigens mit "q". Gruß Christian Boltz -- Zeitreisen vermeide ich immer, sollen irgendwie ungesund sein. [Helga Fischer in suse-linux]