linux 系统变量在 shebang 中的使用
Usage of linux system variable in the shebang
我尝试将带有 perl 脚本的外部用户文件夹包含到我的通用 perl 脚本中。我如何使用 linux 系统变量 user (${USER}) 来包含这些脚本?
我试图将这个变量简单地添加到脚本的第一行,但是变量没有被解析。
示例:
#!/usr/bin/perl -I /tmp/userSpecificFolder-${USER}/anotherFolder/AndAnotherFolder/AndSoOn
这行的输出正是我上面写的,但应该是
#!/usr/bin/perl -I /tmp/userSpecificFolder-CurrentUserName/anotherFolder/AndAnotherFolder/AndSoOn
如您所见,OS 对命令行的解析非常有限。
怎么样:
use lib "$ENV{'USER'}/anotherfolder/something/doodah";
您可能还会发现 FindBin
很有用,因为它允许您根据脚本位置指定相对路径。
例如
use FindBin;
use lib $FindBin::RealBin."/mods_dir";
我尝试将带有 perl 脚本的外部用户文件夹包含到我的通用 perl 脚本中。我如何使用 linux 系统变量 user (${USER}) 来包含这些脚本? 我试图将这个变量简单地添加到脚本的第一行,但是变量没有被解析。
示例:
#!/usr/bin/perl -I /tmp/userSpecificFolder-${USER}/anotherFolder/AndAnotherFolder/AndSoOn
这行的输出正是我上面写的,但应该是
#!/usr/bin/perl -I /tmp/userSpecificFolder-CurrentUserName/anotherFolder/AndAnotherFolder/AndSoOn
如您所见,OS 对命令行的解析非常有限。
怎么样:
use lib "$ENV{'USER'}/anotherfolder/something/doodah";
您可能还会发现 FindBin
很有用,因为它允许您根据脚本位置指定相对路径。
例如
use FindBin;
use lib $FindBin::RealBin."/mods_dir";