Sponsor-Board.de
Mittels .sh eine Variable in eine server.config schreiben

+- Sponsor-Board.de (https://www.sponsor-board.de)
+-- Forum: Webmaster (/forumdisplay.php?fid=44)
+--- Forum: Script-Check (/forumdisplay.php?fid=91)
+--- Thema: Mittels .sh eine Variable in eine server.config schreiben (/showthread.php?tid=49371)


Mittels .sh eine Variable in eine server.config schreiben - GuildControl - 05.07.2014 19:34

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:

Code:
#!/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


RE: Mittels .sh eine Variable in eine server.config schreiben - Linux-Scout.de - 05.07.2014 19:40

Hey, schonmal das probiert:
grep \"maxPlayers\"

Probiers mal aus,
Max.


RE: Mittels .sh eine Variable in eine server.config schreiben - tkausl - 05.07.2014 19:51

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.


RE: Mittels .sh eine Variable in eine server.config schreiben - GuildControl - 05.07.2014 19:54

Funktioniert leider nicht. Dann schreibt er garnichts in die server.config

MfG Boedy


RE: Mittels .sh eine Variable in eine server.config schreiben - tkausl - 05.07.2014 19:57

Oh, ist das ne JSON-Datei? Dann würd ich eher ne Sprache nehmen, die JSON parsen kann.


RE: Mittels .sh eine Variable in eine server.config schreiben - GuildControl - 05.07.2014 20:00

Also müsste es dann so aussehen wenn ich das richtig verstehe.

Code:
#!/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.


RE: Mittels .sh eine Variable in eine server.config schreiben - tkausl - 05.07.2014 20:07

Simples beispiel:

PHP-Code:
#!/usr/bin/env php
<?php
if($argc == && $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


RE: Mittels .sh eine Variable in eine server.config schreiben - GuildControl - 05.07.2014 21:59

Hab es soweit am laufen.
Ich danke allen für die Hilfe.

Mfg Boedy