从perl脚本中提取用户名

时间:2013-10-07 10:57:55

标签: perl

我想在脚本本身中提取用户名,执行perl脚本。

我正在从perl执行whoami linux命令,如下所示,它运行良好。

my $whoami = `whoami`;
chomp $whoami;
print $whoami;

我的目的是远离从perl脚本调用系统命令。因此,我正在寻找仅限Perl 解决方案。我想知道是否有可用的CPAN模块可以提取系统信息。

您对此方面的建议表示赞赏。

3 个答案:

答案 0 :(得分:7)

perl -le 'print scalar getpwuid $<'

答案 1 :(得分:3)

Perl可以直接映射到系统getpw*函数。

  

这些例程与系统C中的对应例程相同   图书馆。在列表上下文中,各种get的返回值   例程如下:

     

($名称,$ passwd中,UID $,$ GID,      $ quota,$ comment,$ gcos,$ dir,$ shell,$ expire)= getpw *

- 来自perldoc -f getpwuid

使用getpwuid$<作为参数(根据perldoc perlvar是“此过程的真实uid”,也可以$REAL_USER_ID和{{1获得第一个返回值。

答案 2 :(得分:2)

你应该考虑哈希%ENV 。它包含有关运行脚本的环境的有用信息。

获取用户名的一个示例(在Windows中)将是:

perl -E "say $ENV{'USERNAME'}"

对于USERNAMELOGNAME,请使用bash替换USER

相关问题