在shebang中使用linux系统变量

chu*_*uhx 0 linux perl shebang

我尝试将带有perl脚本的外部用户文件夹包含到我的常规perl脚本中.我如何使用linux系统变量用户($ {USER})来包含这些脚本?我试图将此变量简单地添加到脚本的第一行,但该变量未解析.

例:

#!/usr/bin/perl -I /tmp/userSpecificFolder-${USER}/anotherFolder/AndAnotherFolder/AndSoOn
Run Code Online (Sandbox Code Playgroud)

这一行的输出正是我上面写的,但它应该是

#!/usr/bin/perl -I /tmp/userSpecificFolder-CurrentUserName/anotherFolder/AndAnotherFolder/AndSoOn
Run Code Online (Sandbox Code Playgroud)

Sob*_*que 6

正如您所发现的,操作系统对命令行的解析非常有限.

怎么样:

use lib "$ENV{'USER'}/anotherfolder/something/doodah";
Run Code Online (Sandbox Code Playgroud)

您可能也觉得FindBin有用,因为它允许您根据脚本位置指定相对路径.

例如

use FindBin;
use lib $FindBin::RealBin."/mods_dir";
Run Code Online (Sandbox Code Playgroud)