/ / Laravel Envoy und Bash prompt - bash, laravel, laravel-envoy

Laravel Envoy und Bash prompt - bash, laravel, laravel-envoy

Ich verwende Envoy, um einen Remote-Server bereitzustellen. Die Bereitstellung erfolgt, indem das Bash-Skript aus einem privaten Repo abgerufen und dann ausgeführt wird.

Das Bash-Skript fragt einige Bestätigungen wie yes / no (mit bash "read -p"): Es funktioniert wie erwartet, wenn ich mit dem Remote-Server verbunden bin ... das Skript wartet auf Benutzereingaben.

Stattdessen scheint Envoy jede Aufforderung zu ignorieren. Ist es ein erwartetes Verhalten?

Irgendeine Problemumgehung?

Antworten:

3 für die Antwort № 1

Ja, das wird erwartet. Da ist nichts für read zu lesen, so tut es nicht.

Sie haben ein paar Optionen.

  1. Schreiben Sie Ihr Skript neu, um eine Konfigurationsdatei zu verwenden, wenn kein Terminal zur Eingabe aufgefordert wird.

    Verwenden Sie etwas wie [ -t 0 ] um zu testen, ob die Standardeingabe ein Terminal ist undLaden Sie eine Konfigurationsdatei mit Standardwerten. Der einfachste Weg, dies zu tun, ist nur eine Datei, die passende Variablenzuweisungen enthält und sie nur zu beziehen . defaults.sh oder Wasauchimmer. Du brauchst nicht einmal die -t Testen Sie, ob Sie zuerst die Standardwerte beziehen, da dann die Eingaben des Benutzers den Standardwert übersteuern.

  2. Schreiben Sie Ihr Skript neu, um gültige Standardwerte zu erhalten.
  3. Rewrite, was auch immer das Skript ausführt, um Ihre Skripteingabe über eine Pipeline / Datei per Umleitung bereitzustellen (z. printf "answer 1nanswer 2n" | ./script.sh oder ./script.sh <answerfile).