Ich führe ein Perl-Programm "a.pl" im Terminal, das ein anderes Programm "b.pl" aufrufen muss, das dann die Umgebung in eine tcl-Shell umwandelt. Das Programm "b.pl" setzt Umgebungsvariablen, die ich verwenden muss, zurück in das Hauptprogramm "a.pl", nach dem ich neue Befehle in der tcl-Umgebung ausführen muss, die von "b.pl" erstellt wurde. Bitte beachten Sie das folgende BeispielKommunikation zwischen Eltern- und Kindprozess - Perl
Programm: a.pl
#!/usr/intel/bin/perl -w
use strict;
use warnings;
#turns it to a tcl shell and sets environment variable VERSION
system ("./b.pl");
system ("source <tclExecutable> -version $VERSION");
Der zweite System Befehl nicht ausführen, bis ich den Tcl-Shell manuell in dem Terminal verlassen. Ich habe auf die Gabel geschaut und eine Pfeife geöffnet, aber ich bin mir nicht sicher, wie ich das machen soll. Ich muss den zweiten Befehl in der tcl-Shell ausführen, die vom ersten Systembefehl geöffnet wurde. Wie kann ich das schaffen?
Sie können nicht ein Elternteil die Umgebungsvariablen in einem untergeordneten Prozess eingestellt. – choroba
* Wie * setzt b.pl env vars? –
Das ist die merkwürdigste Art, ein Tcl-Skript auszuführen, das ich gesehen habe. Nun, diese Woche sowieso ... –