Bar*_*ter 1 shell perl solaris-10
我正在从 AIX 迁移到 Solaris 10,但是/bin/sh那里的版本太旧了,我们的脚本无法运行。我可以以某种方式强制 perl 通过不同的 shell(在我的情况下,/bin/ksh)在 `` 中执行命令吗?
我有很多地方有系统调用,所以在每个地方都改变它们不是很可行。找到一些全局设置或其他东西会很棒。
为了得到一个在Solaris POSIX环境中,你需要把符合标准目录(/usr/xpg6/bin,数量可以在不同的Solaris版本的不同)在早期PATH,之前/usr/bin或/bin。那里有一个符合 POSIX 的sh(ksh实际上是),并且一些实用程序的反应会有所不同,$PATH即使它们来自单个可执行文件。
对目录进行硬编码:
my @xpg_dirs = glob('/usr/xpg[0-9]/bin /usr/xpg[0-9][0-9]/bin');
$ENV{PATH} = "$xpg_dirs[@xpg_dirs-1]:$ENV{PATH}" if @xpg_dirs;
Run Code Online (Sandbox Code Playgroud)
或者处以标准PATH与getconf(其奇怪的是不是在POSIX模块):
$ENV{PATH} = `getconf PATH`;
chomp($ENV{PATH});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
955 次 |
| 最近记录: |