Sao*_*obi 4 linux environment perl
我有一个脚本,其内容只是在linux中导出一个变量.
export LD_LIBRARY_PATH=....
Run Code Online (Sandbox Code Playgroud)
我想在我的Perl脚本中运行此脚本,因此无论谁运行我的Perl脚本都将拥有它们的LD_LIBRARY_PATH集合.我可以在Perl脚本的开头执行此操作:
#!/usr/bin/perl -w
system(". /myfolder1/myfolder2/myScript.sh");
Run Code Online (Sandbox Code Playgroud)
eph*_*ent 10
#!/bin/sh
. /myfolder1/myfolder2/myScript.sh
exec perl -wxS "$0" "$@"
#!/usr/bin/perl -w
# .. the rest of your script as normal
Run Code Online (Sandbox Code Playgroud)
当你运行它时,它将首先被执行/bin/sh,它能够加载myScript.sh到本地环境中. sh然后exec是Perl,被告知从下一行继续.
这不行.要更改Perl脚本中的环境(并更改将传递给从Perl脚本内部运行的命令的环境),请更改%ENV变量.
$ENV{"LD_LIBRARY_PATH"} = ... ;
Run Code Online (Sandbox Code Playgroud)