Nehmen wir Ark hier muss am Anfang der Config Datei [ServerConfig] stehen. Das derzeitige Easy Config ersetzt aber nur die vorgegebenen Werte.
Was also tun damit die Config Datei auch mit dem Easy Config funktioniert? Ganz einfach in Startkskript des Ark Servers z.b. arkserverstart.sh
In dem Beispiel wird die config Datei in Zeile 9 als servconf gespeichert. Dann wird die config Datei mit dem Eintrag [ServerConfig] erstellt und danach
der Inhalt in die Datei mit eingefügt. > = Datei neu erstellen bzw. überschreiben, >> = Daten in die bestehende Datei am Ende einfügen.
Der ganze Code ist also 3 Zeilen lang und nachvollziehbar. Man kann dies auch via Sed einzeilig lösen.
#!/bin/bash
echo "#######################################################" > "screenlog.0"
echo "### " >> "screenlog.0"
echo "### Ein ARK Server brauch bis zu 10 Minuten zum Starten." >> "screenlog.0"
echo "### " >> "screenlog.0"
echo "#######################################################" >> "screenlog.0"
echo "" >> "screenlog.0"
serverconf=`cat pfad/namederconfig`
echo "[ServerConfig]" > pfad/namederconfig
echo "${serverconf}" >> pfad/namederconfig
while test $# -gt 0; do
case "$1" in
"-PORT")
PORT="$2"
shift ;;
"-PLAYER")
PLAYER="$2"
shift ;;
esac
shift
done
sleep 3
QUERYPORT=$(($PORT+1))
./ShooterGameServer Ragnarok?listen?Port="$QUERYPORT"?QueryPort="$PORT"?MaxPlayers="$PLAYER"? -server -logfile screenlog.0
Alles anzeigen
Wenn nun Werte zwischen zwei Zeilen geschoben werden müssen kann man sich sed bedienen. Z.b. wenn die Config nicht
name1=wert
name2=wert
name3=wert
name4=wert
lautet sondern normalerweise
[XXXX]
name1=wert
[YYYY]
name2=wert
name3=wert
[ZZZZ]
name4=wert
Hier würde man sich z.b. name2 als Zeile suchen und via Sed eine leerzeile sowie [YYYY] einfügen. Sed siehe Code /home/skripte/streams und games