Mittels .sh eine Variable in eine server.config schreiben
|
Verfasser |
Nachricht |
|
Beiträge: 79
Bewertung: 3
Registriert seit: Oct 2012
Status:
offline
|
Mittels .sh eine Variable in eine server.config schreiben
Hallo alle zusammen,
Ich stehe vor dem Problem das ich mit Hilfe einer datei.sh eine Variable an eine server.config übergeben möchte. Der Wert soll dann ganz einfach nur ersetzt werden. Soweit klapt das auch, nur bekomme ich den Wert nicht in Anführungszeichen gesetzt.
Das habe ich soweit hinbekommen:
#!/bin/bash
while test $# -gt 0; do
case "$1" in
"-PLAYER")
PLAYER="$2"
shift ;;
esac
shift
done
grep "maxPlayers" : server.config &>/dev/null
if [[ $? -eq 0 ]]; then # Vorhanden!
sed -i server.config -e "s/^\( "maxPlayers" : \).*$/\1${PLAYER},/"
else # Nicht vorhanden!
echo " "maxPlayers" : ${PLAYER}," >> server.config
fi
Leider habe ich jetzt das Problem, das keine Anführungszeichen übergeben werden.
So müsste es aussehen: "maxPlayers" : 24000,
Und so schreibt das Script es hinein: maxPlayers : 26050,
Kann mir dabei vielleicht jemand helfen oder einen Tipp geben?
MfG Boedy
111222333
|
|
05.07.2014 19:34 |
|
|
Beiträge: 947
Bewertung: 8
Registriert seit: Feb 2012
Status:
offline
|
|
05.07.2014 19:40 |
|
|
Beiträge: 210
Bewertung: 1
Registriert seit: Apr 2013
Status:
offline
|
RE: Mittels .sh eine Variable in eine server.config schreiben
beim sed und beim echo auch die beiden " escapen, denk dran dass die config ungültig wird wenn sie nicht mit \n endet und das echo ausgeführt wird.
PHP Problem? [Link: Registrierung erforderlich]
Language: PHP, Indent-Mode: 2 oder 4
|
|
05.07.2014 19:51 |
|
|
Beiträge: 79
Bewertung: 3
Registriert seit: Oct 2012
Status:
offline
|
RE: Mittels .sh eine Variable in eine server.config schreiben
Funktioniert leider nicht. Dann schreibt er garnichts in die server.config
MfG Boedy
111222333
|
|
05.07.2014 19:54 |
|
|
Beiträge: 210
Bewertung: 1
Registriert seit: Apr 2013
Status:
offline
|
RE: Mittels .sh eine Variable in eine server.config schreiben
Oh, ist das ne JSON-Datei? Dann würd ich eher ne Sprache nehmen, die JSON parsen kann.
PHP Problem? [Link: Registrierung erforderlich]
Language: PHP, Indent-Mode: 2 oder 4
|
|
05.07.2014 19:57 |
|
|
Beiträge: 79
Bewertung: 3
Registriert seit: Oct 2012
Status:
offline
|
RE: Mittels .sh eine Variable in eine server.config schreiben
Also müsste es dann so aussehen wenn ich das richtig verstehe.
#!/bin/bash
while test $# -gt 0; do
case "$1" in
"-PLAYER")
PLAYER="$2"
shift ;;
esac
shift
done
grep "maxPlayers" : server.config &>/dev/null
if [[ $? -eq 0 ]]; then # Vorhanden!
sed -i server.config -e "s/^\( \"maxPlayers\" : \).*$/\1${PLAYER},/"
else # Nicht vorhanden!
echo " \"maxPlayers\" : ${PLAYER}," >> server.config
fi
Ja genau, ist eine JSON. OK, da bin ich dann aber wirklich mit meinem Latein am ende.
111222333
Dieser Beitrag wurde zuletzt bearbeitet: 05.07.2014 20:09 von GuildControl.
|
|
05.07.2014 20:00 |
|
|
Beiträge: 210
Bewertung: 1
Registriert seit: Apr 2013
Status:
offline
|
RE: Mittels .sh eine Variable in eine server.config schreiben
Simples beispiel:
#!/usr/bin/env php <?php if($argc == 3 && $argv[1] == '-PLAYER'){ $conf = json_decode(file_get_contents('server.config'), true); $conf['maxPlayers'] = intval($argv[2]); file_put_contents('server.config', json_encode($conf)); }
E: Shebang reineditiert
PHP Problem? [Link: Registrierung erforderlich]
Language: PHP, Indent-Mode: 2 oder 4
Dieser Beitrag wurde zuletzt bearbeitet: 05.07.2014 20:10 von tkausl.
|
|
05.07.2014 20:07 |
|
|
Beiträge: 79
Bewertung: 3
Registriert seit: Oct 2012
Status:
offline
|
RE: Mittels .sh eine Variable in eine server.config schreiben
Hab es soweit am laufen.
Ich danke allen für die Hilfe.
Mfg Boedy
111222333
|
|
05.07.2014 21:59 |
|
|