我想在脚本本身中提取用户名,执行 perl 脚本。
我正在执行whoami
perl 中的 linux 命令,如下所示,它运行良好。
my $whoami = `whoami`;
chomp $whoami;
print $whoami;
我的目的是避免从 perl 脚本调用系统命令。因此,我正在寻找仅 Perl的解决方案。我想知道是否有任何可用的 CPAN 模块可以提取系统信息。
您在这方面的建议将不胜感激。
我想在脚本本身中提取用户名,执行 perl 脚本。
我正在执行whoami
perl 中的 linux 命令,如下所示,它运行良好。
my $whoami = `whoami`;
chomp $whoami;
print $whoami;
我的目的是避免从 perl 脚本调用系统命令。因此,我正在寻找仅 Perl的解决方案。我想知道是否有任何可用的 CPAN 模块可以提取系统信息。
您在这方面的建议将不胜感激。
perl -le 'print scalar getpwuid $<'
Perl 直接映射到系统getpw*
函数。
这些例程与系统 C 库中的对应例程相同。在列表上下文中,各种 get 例程的返回值如下:
($name,$passwd,$uid,$gid, $quota,$comment,$gcos,$dir,$shell,$expire) = getpw*
——从perldoc -f getpwuid
。
使用getpwuid
with$<
作为参数(根据perldoc perlvar
是“此进程的真实 uid”,也可用作$REAL_USER_ID
and $UID
)并获得第一个返回值。
您可能应该看一下哈希%ENV。它包含有关运行脚本的环境的有用信息。
获取用户名的一个示例(在 Windows 中)是:
perl -E "say $ENV{'USERNAME'}"
对于bash 替代USERNAME
或。LOGNAME
USER