Ich versuche, Perl zu verwenden, um einen Prozess zu erstellen, der Bash und dann eine Datei sample.txt
erstellt, aber nach dem Bash-Befehl kann ich keine Ausgabe auf der Konsole oder sample.txt
Datei in der gleichen Verzeichnisstruktur sehen. Kann mir jemand helfen, den folgenden Code zu reparieren?Können wir eine Bash-Instanz in Perl-Skript erstellen?
my $var = `bash -l`;
system($var);
print "Done!";
my $filename = 'sample.txt';
open(my $fh, '>', $filename) or die "Could not open file '$filename' $!";
chmod(0777, "sample.txt");
print $fh "hello";
close $fh;
print "Done 1!..";
Wollten Sie schreiben: 'my $ var =" bash -l ";' damit das 'system'' bash -l' ausführt, anstatt die Ausgabe von 'bash -l'? Wie es aussieht, führen Sie das 'bash -l' als einen Befehl mit Perl aus, der die Ausgabe erfasst (so dass Sie es nie auf dem Bildschirm sehen werden). –
Nein.Das ist, was ich meine $ var = 'bash -l 'schreiben möchte; Aber hier ist die Frage, warum ich keine Ausgabe sehen kann? Und was, wenn ich sehen will? Irgendwelche Vorschläge. – Yog
Sie meinen, Sie wollen wirklich '' my $ var = 'bash -l';' 'was bedeutet, dass Sie die Ausgabe von der Login-Shell nicht sehen, bis die' system'-Anweisung versucht, die Eingabeaufforderungen usw. als Befehle auszuführen? Ich denke du bist verwirrt. –