首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在Perl脚本中更改shell

在Perl脚本中更改shell
EN

Stack Overflow用户
提问于 2012-05-17 07:54:23
回答 3查看 1.9K关注 0票数 1

我正在寻找一种很好的方法来完成以下工作:

因此,我有一个脚本,需要在Unix的Python中运行,方法是从Perl脚本调用,然后使用Plink从Windows中的Excel VBA宏调用该脚本。由于依赖问题,Python脚本必须在csh或bash中运行,在运行脚本之前,我需要使用export/setenv添加一些库。但是,默认情况下,perl在sh shell中运行,因此,我无法添加所有依赖项并运行Python脚本。

因此,我想知道是否有以下两种方法: 1.在perl脚本中将依赖项添加到sh shell,或者2.强制我的perl脚本在csh中运行(首选,因为由于某种原因,帐户的.bashrc会遇到权限问题)。

非常感谢!

EN

回答 3

Stack Overflow用户

发布于 2012-05-17 10:25:16

"3.在Perl或Python脚本中设置适当的环境变量“如何?

代码语言:javascript
复制
$ENV{'PATH'} = ...

..。

代码语言:javascript
复制
os.environ['PATH'] = os.pathsep.join(newpaths + os.environ['PATH'].split(os.pathsep))

(不知道如何在Perl中获取路径分隔符,sorz)

票数 2
EN

Stack Overflow用户

发布于 2012-05-17 08:00:09

要强制外壳使用csh,请在Perl中尝试执行以下命令:

代码语言:javascript
复制
`/bin/csh -c "command_name"`;

编辑

您可以使用ENV变量,如下所示。试一试:

代码语言:javascript
复制
$s = `/bin/bash -c 'VAR_FOO=753; echo \$VAR_FOO'`;
print $s;
票数 1
EN

Stack Overflow用户

发布于 2012-05-17 21:56:17

我最后只是更改了.cshrc脚本,显然,由于某些原因,添加到PATH中的内容对我不起作用。之后,通过将所有内容放在一行中,一切都将顺利运行。

所以基本上它看起来像这样

代码语言:javascript
复制
/path/to/.cshrc && /python/path/to/python

希望这能有所帮助!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10628280

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档