Shell (bash) Scripte

HI!

ich hab einige probs weil bei mir die shell programmierung nicht will.
ich hab bis jetzt folgendes probiert:

declare -i a
declare -i b
echo "Welche Map? "
read a
echo "Wieviele Spieler? "
read b
/home/ds/hlds_l/hlds_run -game cstrike +maxplayers &a +map $b

–> soll den hlds starten, tuts aber nicht. er schreibt nach jeder eingabe ‚not a valid Identifier‘.
kann mir jemand helfen ein solches script zu schreiben???

thx a lot
alex

hi, alex, ich habe einige Fragen:

declare -i erwartet als eingabe eine ganzzahl. für spieler korrekt, aber auch für map?
maxplayers ist nicht a und &a sollte auch verkehrt sein?!
als referenz $a, wie bei b.
also, wenn map ein text ist, muß es >declare +i a[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

PS. Wenns nicht geht, versuche ich es noch einmal. Aber bitte
genaues Script.

#############################

hi!

danke für deinen beschreibungsversuch aber es geht bei mir immer noch nicht.

ich hätte gern ein script was folgendes macht:

echo "welche Map? "
#string-eingabe (max 15 zeichen & ohne spaces) --> map
echo "wieviele spieler? "
#integer-eingabe --> spieler
#verzeichnisswechsel in /home/ds/hlds_l
#aufruf von ./hlds_run -game cstrike +maxplayers $spieler +map $karte

mehr möcht ich nicht. wie es unter dos bzw als c+±executable gebt weiß ich. nur ich wollt das glei als bash-script machen.
ich hoffe die anletung reicht aus.

mfg
alex

Hallo, Alex ein Script mit Kommentaren und Fragen:

#!/bin/sh

erste Zeile ist kein Kommentar, sondern muß stehen! Bezeichnet die Shell, Link auf bash

####################################################

Hallo, Alex, deine Wünsche:

#############################

danke für deinen beschreibungsversuch aber es geht bei mir immer noch nicht.

ich hätte gern ein script was folgendes macht:

echo "welche Map? "

#string-eingabe (max 15 zeichen & ohne spaces) --> map

echo "wieviele spieler? "

#integer-eingabe --> spieler

#verzeichnisswechsel in /home/ds/hlds_l

#aufruf von ./hlds_run -game cstrike +maxplayers $spieler +map $karte

mehr möcht ich nicht. wie es unter dos bzw als c+±executable gebt weiß ich. nur ich wollt das

glei als bash-script machen.

ich hoffe die anletung reicht aus.

########################################################

Nun das Script, ohne Tests, Eingabeüberprüfung usw.

declare +i karte # String, also Zeichen
declare -i player # Ganzzahl

echo "Welche Map? "
read karte # Eingabe von Zeichen, aber Sonderzeichen? für die Shell bzw Programm beachten
echo "wieviele Spieler? "
read player

Überprüfung

echo „Map“ $karte „und Player“ $player

cd /home/ds/hlds_l # Wechsel in das Directory

Aufruf verstehe ich nicht:

was ist hlds_run? Ein Script oder ein Programm?

Was passiert beim Aufruf? Interpretation von Sonderzeichen? Ist karte Pfad+File?

./hlds_run -game cstrike +maxplayers $player +map $karte

mfg

dj

#!/bin/sh

hab ich auf /bin/bash ausgebessert weils /bin/sh nicht gibt.

Nun das Script, ohne Tests, Eingabeüberprüfung usw.

declare +i karte # String, also Zeichen
declare -i player # Ganzzahl

echo "Welche Map? "
read karte # Eingabe von Zeichen, aber
Sonderzeichen? für die Shell bzw Programm beachten
echo "wieviele Spieler? "
read player

Überprüfung

echo „Map“ $karte „und Player“ $player

cd /home/ds/hlds_l # Wechsel in das Directory

Aufruf verstehe ich nicht:

was ist hlds_run?

ein Programm

Was passiert beim Aufruf? Interpretation von Sonderzeichen?

##Ist karte Pfad+File?

#karte ist nur ein kurzer string zB de_dust oder cs_militia

./hlds_run -game cstrike +maxplayers $player +map $karte

#jetzt kommt folgender fehler: 'bash: ./hlds.sh Datei oder Verzeichniss nicht gefunden.
viel hats leider nicht geholfen aber a bissl schon. wenn ers dann noch findet dann bin ich glücklich :smile:

mfg
alex

ich weiß ja nicht ob das was aus macht unter welchem dateinamen mann die datei abspeichert aber ich habs unter ‚hlds.sh‘ bzw nur ‚hlds‘ probiert. vielleicht kannst ja die info brauchen.

Alex

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

Hallo, Alex

ich weiß ja nicht ob das was aus macht unter welchem
dateinamen mann die datei abspeichert aber ich habs unter
‚hlds.sh‘ bzw nur ‚hlds‘ probiert. vielleicht kannst ja die
info brauchen.

Der Namen ist egal, aber hlds.sh ist gut, denn man erkennt, es ist ein Script. Aber: die Datei als Script muß das Recht „ausführbar“ haben, also chmod +x . Ob die Rechte vorhanden sind mit ls -l prüfen.

Um weiter zu kommen, maile mir bitte
a) den Aufruf aus der Kommandozeile
b) das Ergebnis von pw

Der Aufruf aus der Kommandozeile muß klappen und dann kann man damit ein Script zum Sammeln der Parameter entwickeln und den Aufruf schreiben.

MfG
dj