15
A
回答
34
你可以这样说:
$ENV{HOME} = 'something different';
但请注意,这只会有你的脚本的其余部分中的作用。当您的脚本退出时,the calling shell will not see any changes。
由于perldoc -v %ENV
说:
%ENV
哈希%ENV
包含当前的环境。在“ENV”中设置值会更改后续“fork()
”关闭的任何子进程的环境。
6
$ENV{'HOME'} = '/path/to/new/home';
另见perlrun
1
当perl的得到启动它使自己的子壳。该子外壳不包含所有功能,例如只提供主外壳可用的外壳文件。您无法为主外壳设置任何环境路径。 如果你有一个你想要访问你的路径的shell文件,你可以做一件事,你可以在你的代码中使用它。
您可以通过安装来自CPAN的Shell :: Source来安装外部模块。
$env_path= Shell::Source->new(shell=>"tcsh",file=>"../path/to/file/temp.csh");
$env_path->inherit;
print "Your env path: $ENV{HOME}";
像Perl的shell运行时创建它自己的实例,所以我们不能设置环境路径,主壳作为Perl的实例会像主壳的子壳。子进程不能为父母设置环境路径。
现在直到Perl的子壳运行,你就可以访问您temp.csh所有在场的路径
-2
这是不好的,但你可以使用系统调用一个VBS脚本(“CSCRIPT your_vbs_script”)让它处理环境变量分配。它将存在于下一个打开的shell中,而不是在这种情况下运行的shell。
相关问题
- 1. 如何在Perl中设置Win32系统环境变量?
- 2. 使用perl设置环境变量
- 3. NSIS - 如何在系统变量中设置环境变量
- 4. 如何设置环境变量&
- 5. 如何设置GAE_SDK_ROOT环境变量?
- 6. 如何设置CGBITMAP_CONTEXT_LOG_ERRORS环境变量?
- 7. msbuild,如何设置环境变量?
- 8. 如何为Jython设置环境变量?
- 9. 如何从Scala设置环境变量?
- 10. GETENV - 如何设置环境变量
- 11. 如何设置TERM环境变量
- 12. 如何设置SUDO_ASKPASS环境变量?
- 13. 如何为python设置环境变量
- 14. 如何设置vsvars32环境变量?
- 15. IDEA:如何设置环境变量?
- 16. 如何为PHP设置环境变量?
- 17. 如何永久设置环境变量?
- 18. 如何设置黄瓜环境变量
- 19. 如何设置ANDROID_HOME环境变量?
- 20. 如何永久设置环境变量?
- 21. 我如何设置grails环境变量?
- 22. 设置环境变量
- 23. 设置Maven环境变量
- 24. 设置Java环境变量?
- 25. 设置apache环境变量
- 26. 设置环境变量
- 27. DrJava设置环境变量
- 28. C设置环境变量
- 29. 设置环境变量
- 30. C#设置环境变量
无关紧要,因为这个问题不是关于在子进程的父进程中设置环境变量。 – mob 2017-06-23 22:45:29