Ankündigung

Einklappen
Keine Ankündigung bisher.

bash string replace mit sed & echo variable?

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • bash string replace mit sed & echo variable?

    ich möchte über ein bash script einen string in einem PHP script ersetzen:
    PHP-Code:
    $config['smtp_server'] = 'mysmtpservername'
    Code:
    setsmtp=$(echo $(hostname).$(dnsdomainname))
    #echo $setsmtp (output: mein.domainname.tld)
    sed -i 's|mysmtpservername|echo $setsmtp|g' /pfad/config/config.inc.php
    was dann aber im PHP Script landet ist:
    Code:
    echo $setsmtp
    dort sollte aber der komplette server name angezeigt werden:
    mein.domainname.tld

    Ich kann hier in der PHP config keine Abfrage für den servername integrieren, das bashscript ist gedacht um nach einem Update (php conf wird dabei immer überschrieben) den smtp servername wieder automatisiert neu zu setzen.
    Problem liegt vermutlich wieder daran das "echo $setsmtp" im sed Befehl nicht richtig escaped wurde ...
    kann mir jemand auf die Sprünge helfen?

  • #2
    Warum wird das so komisch mit einer PHP-Datei konfiguriert? Warum keine richtige Konfigurationsdatei? Sowas lässt sich dann auch viel einfacher automatisiert verarbeiten. Oder man verwendet gleich Umgebungsvariablen für die Konfiguration, dann muss gar keine Datei modifiziert werden.

    Kommentar


    • #3
      Zitat von hellbringer Beitrag anzeigen
      Warum wird das so komisch mit einer PHP-Datei konfiguriert? Warum keine richtige Konfigurationsdatei? Sowas lässt sich dann auch viel einfacher automatisiert verarbeiten. Oder man verwendet gleich Umgebungsvariablen für die Konfiguration, dann muss gar keine Datei modifiziert werden.
      na ja das Problem dabei ist in meinem Fall muss ich den Hostname für TLS anpassen (tls://) das ganze wird ständig bei einem Update der SW überschrieben und dazu möchte ich ein Bash Script einbinden was nach einem Update der SW als postinstall ausgeführt wird um das wieder funktionierend zu restoren ...
      Oder gibt es eine bessere Lösung mit awk etc. um die bash variable in ein PHP script zu beamen?

      Kommentar


      • #4
        habs hinbekommen, das ganze geht um Roundcube ... also MTA wurde auf TLS required umgestellt und da wollte RC nicht mehr senden, hab jetzt den smtp in der config auf localhost Port 25 gesetzt und damit funktioniert es.
        Im Bash Script muss ich dann keine Variablen mehr verwenden um diese festen Werte zu ersetzen

        Kommentar


        • #5
          Oder gibt es eine bessere Lösung mit awk etc. um die bash variable in ein PHP script zu beamen?
          was ist SW ?

          der hostname sollte bspw in /etc/hosts stehen
          man kriegt ihn aber auch mit
          Code:
          hostname --long
          bspw.

          Kommentar

          Lädt...
          X