linux - 如何判断用户是否登录?

标签 linux shell grep

我想知道用户是否登录。

if [ "$(who | grep -wq "$1")" == 0 ]
echo $1 "is logged in"

"$(who | grep -w "$1")" 如果 grep 在列表 (who) 中找到 $1(用户名),则等于 0。因此,如果用户在列表中,则他或她已登录。 这有什么问题吗?

最佳答案

grep 不会打印 0,这是您的脚本检查的内容。它的退出代码是0。要检查退出代码很简单:

if who | grep -wq "$1"; then
    echo "$1 is logged in"
fi

关于linux - 如何判断用户是否登录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36610356/

相关文章:

c++ - 如果我在代码块中构建代码,为什么我的代码运行得更快?

java - 如何检查Linux中用户是否存在(JSch)

连接到 docker daemon 的 shell 脚本

linux - 如何使用别名来grep日志文件的尾部?

regex - 将一系列日期中的 Grep 作为文件名

linux - 使用通配符从 tar 文件中提取文件

linux - 在 Linux 中将文本预先附加到一行

c - 如何使用 libnetfilter_conntrack 查询 conntrack?

linux - 如何隐藏shell命令的特定标准输出

linux - 在文件中递归查找字符串/正则表达式匹配项的最佳方法是什么? (UNIX)