【发布时间】:2015-03-18 10:53:47
【问题描述】:
我正在尝试在 Perl 中设置一些区分大小写的 Windows 环境变量,以便在 shell 脚本中使用它们。
但是,当我尝试在使用 system 命令从 Perl 调用的 shell 脚本中使用小写的环境变量并使用 Msys 运行时,我注意到环境变量都是大写的。
例如以下脚本:
#!perl
system "echo echo TOTO=\$TOTO > toto.sh";
system "echo echo Titi=\$Titi >> toto.sh";
system "echo echo TITI=\$TITI >> toto.sh";
$ENV{'TOTO'}="0+0";
$ENV{'Titi'}="Not toto!";
system("sh toto.sh");
返回(在 Msys 中运行时)以下输出:
TOTO=0+0
Titi=
TITI=Not toto!
有人知道这在 Windows 中是否可行(即如何设置环境变量 Titi 而不是 TITI)?
谢谢
【问题讨论】:
-
您使用的是哪个系统 (OS)?在我的情况下(OS X 和 Linux)它可以工作(我只需要在脚本创建语句中引用美元)。例如。 system "echo echo TOTO='\$TOTO'> toto.sh";
-
我得到:TOTO=0+0,Titi=Not toto!,TITI=
-
我使用的是 Windows,很遗憾...我会更新问题。
-
Windows 没有
sh。你在运行 Cygwin 吗? -
我正在运行 Msys。但我想 Cygwin 也会出现同样的问题。 => 在问题中添加