Führen Sie den Systembefehl in Ruby aus und interagieren Sie mit ihm

8

Ich muss einen Befehl in der Befehlszeile ausführen, der nach einer Benutzerantwort fragt. Falls es hilft, ist der Befehl:

%Vor%

Wenn Sie dies ausführen, warnt es vor etwas und fragt dann:

  

Verwenden Sie diese Taste trotzdem? (J / N)

Reagierend 'y' lass es uns richtig beenden. Ich habe versucht, das open4-Juwel zu verwenden, aber ich konnte es nicht bekommen, um das "y" korrekt zu spezifizieren. Hier ist, was ich versucht habe:

%Vor%

Was mache ich falsch? Ist das, was ich mache, überhaupt möglich?

    
chrishomer 18.05.2012, 00:18
quelle

2 Antworten

9

Die Unix-Art, mit diesen Situationen umzugehen, ist mit expect , was Ruby mit built-in Unterstützung für:

%Vor%     
Abe Voelker 18.05.2012, 00:54
quelle
4

gpg öffnet das Terminal wahrscheinlich direkt, um dem Benutzer die Frage zu stellen - dies ist ein gängiger Sicherheitsansatz, um zu verhindern, dass ein Skript vollständig aus Dateien gesteuert wird. (Siehe die inzwischen veraltete Routine getpass(3) für etwas Ähnliches.)

Wenn Ihnen die Warnung zum Lesen nicht wirklich wichtig ist, können Sie auch die gpg Befehlszeilenoption --yes :

verwenden %Vor%     
sarnold 18.05.2012 00:24
quelle