Debian Script ab einem bestimmten Abschnitt weitermachen

schlawiner

Mitglied
Hallo Freunde,

Ich versuche gerade mit eine if then Anweisung einen Sprung hinzulegen.

nach dem motto passt das dann übersringe alle und springe zu punkt 2

sprich mein startscript soll aus den gameserver parametern $* erlesen was für ein game das ist und an die dafür vorgesehene stelle im script springen und da weitermachen. jemand eine Idee?

nehmen wir z.b
./css_run -game cstrike +map gsmap -maxplayers gsplayer -ip gsip -port gsport +exec fastdl.cfg gsport +sv_password gspasswd -tickrate gstick +fps_max 500 set tv_maxclients 10

da könnte man cstrike als Merkmal aus den startparametern nehmen.
 
Hi, ich hoffe du meinst:

#!/bin/sh


if [ $1 = css ]
then
/var/css/css_run -game cstrike +map gsmap -maxplayers gsplayer -ip gsip -port gsport +exec fastdl.cfg gsport +sv_password gspasswd -tickrate gstick +fps_max 500 set tv_maxclients 10
elif [ $1 = bf1942 ]
then
/var/bf1942/bf_run
else
echo "Bitte geben Sie einen Parameter an."
fi

Das Script nennst du dann so wie du willst :)
Erweiterst es nach belieben.
mit
chmod u+x $scriptname
kannst du dann das Script ausführbar machen.

und z.B. den CSS Server starten:
./$scriptname css

Ich hoffe das Bringt dich weiter.

MFG Ronox
 
Das script soll irgendwann für alle games dienen welche ich habe

vom Prinzip her soll es das Game erkennen welches gestartet wird

so stelle ich mir das vor

(IF Anweisungen)
#Call Of Duty
wenn cod_lnxded in den parametern gefunden so springe zu Abschnitt 1 und mach da weiter
#Call Of Duty 2
wenn cod2_lnxded in den parametern gefunden so springe zu Abschnitt 2 und mach da weiter
#Call Of Duty 4
wenn cod4_lnxded in den parametern gefunden so springe zu Abschnitt 3 und mach da weiter
#Call Of Duty 5
wenn codwaw_lnxded in den parametern gefunden so springe zu Abschnitt 4 und mach da weiter
#Call Of Duty UO
wenn coduo_lnxded in den parametern gefunden so springe zu Abschnitt 5 und mach da weiter
#Counter Strike Source
wenn "srcds_run -game cstrike" in den parametern gefunden so springe zu Abschnitt 6 und mach da weiter

usw.

gestartet soll das script dan später so werden z.b.

./gs_run ./srcds_run +parameter
 
Wieso willst du dir das so Komliziert machen?

wieso nicht deine Server so starten:

./startserver cod2

und in dem Script wie oben, von mir gepostet, trägst du dann deine kompletten Parameter ein, oder wenn du z.B. Port Zahl usw. haben willst, dann setzt du dort noch weitere Parameter ran?

So hast du ein Script für alles, das doch viel besser, weil so wie du das willst oder was du willst das versteh ich nicht so ganz.

MFG Ronox
 
Hi,

[...]
so stelle ich mir das vor

(IF Anweisungen)
#Call Of Duty
wenn cod_lnxded in den parametern gefunden so springe zu Abschnitt 1 und mach da weiter
#Call Of Duty 2
wenn cod2_lnxded in den parametern gefunden so springe zu Abschnitt 2 und mach da weiter
#Call Of Duty 4
wenn cod4_lnxded in den parametern gefunden so springe zu Abschnitt 3 und mach da weiter
#Call Of Duty 5
wenn codwaw_lnxded in den parametern gefunden so springe zu Abschnitt 4 und mach da weiter
#Call Of Duty UO
wenn coduo_lnxded in den parametern gefunden so springe zu Abschnitt 5 und mach da weiter
#Counter Strike Source
wenn "srcds_run -game cstrike" in den parametern gefunden so springe zu Abschnitt 6 und mach da weiter

usw.
[...]

Nach deiner Beschreibung sieht das so aus:

Bash:
#!/bin/bash

ACTION=${1}

if [[ -z "${ACTION}" ]]; then
  echo "No action given." >&2
  exit 1
fi

function startCod() {

}

function startCod2() {

}

case "${ACTION}" in
  cod_lnxded)
    startCod
    ;;
  cod2_lnxded)
    startCod2
    ;;
  default)
    echo "Unknown action." >&2
    exit 2
    ;;
esac

exit 0

Natürlich musst du das Ganze noch um die Funktionen zum Starten der Server erweitern.

Gruß
BK
 
Das ist ganz einfach, das script soll verschiedene Sachen die Gamespezifisch sind dann noch bei den jeweiligen Games dann hintenansetzen.

wie z.b bei cod4 soll das script die fastdlparameter automatisch erkennen und hinten an setzen.
während es bei css nicht funktioniert und dafür dann eine config schreiben muss und diese laden muss.

Desweiteren möchte ich dann da eine Gameserverupdate funktion mit einbauen falls Steam wieder mal Probleme macht.
 
Code:
#!/bin/bash


#Gameserverip festlege.
gsip=`echo "$*" | grep  -Eo "[[:digit:]]{1,3}(\.[[:digit:]]{1,3}){3}"`

#Gameserverpfad festlegen
fdpfad=$(pwd | awk -F/ '{ sub(/\/home/,""); print }');

#Fastdownload Url festlegen
url="$fastdl/$gsip$fdpfad"

#entgueltige Fastdownloadparameter COD Series
start="$* +set sv_allowdownload "\"1\"" +set sv_wwwDownload "\"1\"" +set sv_wwwBaseURL "\"$url\"" +set sv_wwwDlDisconnected "\"0\"""


ACTION=${1}

if [[ -z "${ACTION}" ]]; then
  echo "No action given." >&2
  exit 1
fi
 
function startCod() {
$start
 
}
 
function startCoduo() {
$start
 
}

function startCod2() {
$start
 
}

function startCod4() {
$start
 
}

function startCodwaw() {
$start
 
}

function startCss() {
        fdgame="/orangebox/cstrike"    
        echo //Automatisches Fastdownloadscript - wird bei jedem Serverstart erstellt  >> $cfgvar/fastdl.cfg
        echo //----------------------------------------------------------------------  >> $cfgvar/fastdl.cfg
        echo sv_downloadurl "\"$fastdl/$gsip$fdpfad$fdgame\""                      >> $cfgvar/fastdl.cfg
        $* +exec fastdl.cfg
 
}

function startCs16() {
 
}

function startDods() {
 
}

function startDod() {
 
}

function startCsz() {
 
}

function startTfii() {
 
}

function startL4d() {
 
}

function startL4d2() {
  
}


 
case "${ACTION}" in
  cod_lnxded)
    startCod
    ;;
  coduo_lnxded)
    startCoduo
    ;;
  cod2_lnxded)
    startCod2
    ;;
  cod4_lnxded)
    startCod4
    ;;
  codwaw_lnxded)
    startCodwaw
    ;;
  srcds_run -game cstrike)
    startCss
    ;;
  hlds_run -game cstrike)
    startCs16
    ;;
  srcds_run -game dod)
    startDods
    ;;
  hlds_run -game dod)
    startDod
    ;;
  hlds_run -game czero)
    startCsz
    ;;
  srcds_run -game tf)
    startTfii
    ;;
  srcds_run -game left4dead)
    startL4d
    ;;
  srcds_run -game left4dead2)
    startL4d2
    ;;
  default)
    echo "Kein Game Support." >&2
    exit 2
    ;;
esac
 
exit 0

so ok?
 
Hehe ich darf glücklich sagen ich habe es hinbekommen,

nun habe ich nur noch ein problem welches es zu lösen gilt.

ich muss 3 Parameter aus einer anderen Datei ziehen, Sprich ich lege irgendwo eine textdatei ab in dieser befindet sich

updateserver
fastdlserver
Imageserver

Beste grüsse und vielen Dank
 

Neue Beiträge

Zurück