尝试运行脚本时出现问题

尝试运行脚本时出现问题

在 Ubuntu 11.10 上尝试安装,使用 sh 脚本,没有管理员权限,没有发布任何脚本,在未安装任何脚本的情况下,可以成功安装。你知道《史塔克维尔报》吗?

谷歌翻译的礼貌

在 Ubuntu 11.10 上有一个问题,当您运行 sh 脚本时,如果没有活动控制台,团队不会显示活动用户,但脚本需要知道哪个用户现在处于活动状态。谁遇到过?


顺便说一下,acpi 包中有一个与我的问题相关的错误,它的脚本也被该命令使用who

$ dpkg -l | grep acpi | awk '{print $2 "_" $3}'
acpi_1.5-3ubuntu1
acpi-support_0.138
acpid_1:2.0.10-1ubuntu2.3

$ grep who /usr/share/acpi-support/*
/usr/share/acpi-support/power-funcs: user=$(who | awk "/:$displaynum)/ { print \$1; exit }")
/usr/share/acpi-support/power-funcs: user=$(who | awk "/:$displaynum/ { print \$1; exit }")

我认为这可以修复:

user=$(users | sed 's | |\n|g' | uniq)



____更新于 2012 年 1 月 12 日
问题仍未解决!一个有趣的小实验:为了使用和命令
进行测试,我运行终端,并将以下几行添加到 /etc/crontab:whouser

* * * * *   root    echo 'who: '`who` >> /123
* * * * *   root    echo 'users: '`users` >> /123
* * * * *   root    echo 'users /var/run/utmp: '`users /var/run/utmp` >> /123
* * * * *   root    echo 'users /var/log/wtmp: '`users /var/log/wtmp` >> /123

并在终端运行时检查/123 文件:

users /var/log/wtmp: administrator administrator...
who: administrator pts/3 2012-01-12 14:59 (:0.0)
users: administrator
users /var/run/utmp: administrator

当终端关闭时:

who: 
users: 
users /var/run/utmp: 
users /var/log/wtmp: administrator administrator ...

再次,问题是如何从控制台以 root 身份获取登录到系统(X 会话)的用户列表。

直到我只看到一个解决方案:

user=$(users /var/log/wtmp | sed 's| |\n|g' | uniq)`

谁知道更优雅的解决方案?或者这只是一个选择?
或者也许它仍然是一个错误?

答案1

当前登录的用户设置在环境变量 $USER 中

echo $USER

这应该能满足您的所有需求。要获取所有登录用户的列表,请运行

users

相关内容