PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Mit IF Anweisung Parameter prüfen



SaDDaM123
27-07-2001, 02:44
Hallo...ich hab mir ein ganz kleines Script gemacht für den HL Server :p

--#!/bin/sh

screen -A -m -d -S csserv ./hlds_run -game cstrike -nomaster +sv_lan 1 +maxplayers $1 +map $2
sleep 1
screen -r csserv
--

So..da ist es
Das starte ich mit './lanserv.sh 12 de_dust'

So...wenn man jetzt aber die Parameter vergisst..is das ja doof :D

JEtzt wollte ich in dem Script ne kleine IF Abfrage einbauen.
Aber so wie ich mir das dachte..klappt es leider nicht :(

#!/bin/sh

if (($1 <> 0) &#0124;&#0124; ($2 <> 0))
screen -A -m -d -S csserv ./hlds_run -game cstrike -nomaster +sv_lan 1 +maxplayers $1 +map $2
sleep 1
screen -r csserv
else
echo 'fehler'
So...wenn ich das aber ausführe..kommt ein Fehler :(

Kann mir da jemand bei helfen?

Danke schonmal

howlcoyote
27-07-2001, 03:23
Ja, welcher Fehler kommt denn dann?

thommy
27-07-2001, 07:38
Nana, das hat aber gar nix mit Bashsyntax gemein ;)

if [ "$#" -lt 2 ]; then
echo "Skript erwartet mindestens 2 Argumente"
exit 1
fi
...


Schau mal in die Linuxfibel unter Shells, Bashprogrammierung. Dort gehts ausführlich ums Debuggen und Auswerten von Parametern...

Thomas

SaDDaM123
27-07-2001, 16:06
Hmm..danke..ich werd mal gucken in der linuxfiebel..hab ich gestern zwar schon..aber so auf die schnelle überflogen hab ich nix vonner IF Anweisung gefunden.

Na ja..ich dachte mir...versuch es einfach mal mit C Syntax :BD

mightymike99
27-07-2001, 20:31
Zu deinem ersten Beispiel:

Fuer den Vergleich nimm lieber thommy's beispiel.

Diese Klammern (( ... )) sind zum rechnen da!
zum vergleichen diese [ ... ]

Bei deiner if hast du das abschliessende fi vergessen, also:
if [ there_is_a_hole_in_the_ship ]
then we_sink
else we_paddel_to_amerika
fi

Das logische oder &#0124;&#0124; passt da bei dir auch nicht so recht rein.
ein Beispiel:
kill -15 &#0124;&#0124; kill -7 &#0124;&#0124; kill -9
Wenn der erste kill(Bitte beenden) nicht geht dann der zweite(simulierter Hardwareerror), wenn der nicht geht der dritte(bedingungsloser kill)

du muesstest das logische und && verwenden.

Gruß Tobias

[ 27. Juli 2001: Beitrag editiert von: mightymike99 ]

SaDDaM123
28-07-2001, 09:37
Achsooo..na ja...ich habs jetzt mit dem Beispiel von Tommy gemacht..luppt alles super...bei der linuxfibel hab ich wohl echt den Teil mit der IF Anweisung übersehen..sowas dummes aber auch :D