|  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 |  | 
|  |