获取已登录用户的列表

时间:2014-04-12 19:39:36

标签: ruby linux

如何使用Ruby获取Linux中登录用户的列表,而无需处理wwho的输出?

如果唯一的方法是使用Rubygem,那没关系,但如果有办法在不使用任何外部程序的情况下安装任何内容并且不是很好。

2 个答案:

答案 0 :(得分:0)

由于您标记了您的问题' Linux',我会选择以下内容:

who | cut -f2 -d " "
console
ttys000

irb

$ irb
1.9.3p194 :001 > exec 'who | cut -f2 -d " "'
console
ttys000

另见:Other options to run a shell command

以下是如何使用Etc以非os依赖方式获取当前用户:

$ irb
1.9.3p194 :001 > require 'etc'
 => true 
1.9.3p194 :002 > Etc.getlogin
 => "DudeRoot" 

还有一个选项是compile a .c extension code,它可以满足您的需要,并在github上为其他人发布。

答案 1 :(得分:0)

有一个包含utmp API的原生扩展的Rubygem:rutmp

您可以使用它来继续呼叫getutent以收集有关所有登录用户的信息。

我没有看到这比解析w的输出更简单,{{1}}保证存在于每个Linux系统上。

为什么要不惜一切代价避免拨打外部程序?

相关问题