【发布时间】:2017-12-19 08:02:42
【问题描述】:
我正在终端中运行一个 perl 程序“a.pl”,它需要调用另一个程序“b.pl”,然后将环境转换为 tcl shell。程序“b.pl”设置了我必须在主程序“a.pl”中使用的环境变量,之后我需要在“b.pl”创建的 tcl 环境中运行新命令。请看下面的例子
程序: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");
直到我在终端中手动退出 tcl shell,第二个系统命令才会执行。我看过叉子并打开管道,但我不知道该怎么做。我需要在第一个系统命令打开的 tcl shell 中执行第二个命令。我怎样才能做到这一点?
【问题讨论】:
-
不能在子进程中设置父进程的环境变量。
-
b.pl 如何设置环境变量?
-
这是我见过的运行 Tcl 脚本的最奇怪的方式。好吧,无论如何这周……
-
您可能想尝试使用套接字进行通信。另一个简单的解决方案可能是将 b.pl 中的信息写入文本文件,在运行 tcl shell 之前在 a.pl 中处理它