该任务要求编写一个bash脚本,该脚本将搜索“who”命令以查找将通过命令行参数提供的给定用户ID
此脚本将显示是否已登录此用户ID
到目前为止,我知道要获取用户ID,可以这样做:
who | cut -d' ' -f1 | grep "userIdToSearchFor"
这个grep将显示用户ID(如果存在),如果不存在则显示任何内容,因此它似乎是一个好方法
我相信$1
变量将保存第一个命令行参数
我如何在bash脚本文件中实现它?
编辑:
当前的工作脚本如下所示
#!/bin/bash
userid=$(who | cut -d' ' -f1 | grep "$1")
if [ "$1" == "$userid" ]
then
echo "online"
else
echo "offline"
fi
答案 0 :(得分:3)
这应该适合你:
STRING=$(who | cut -d' ' -f1 | grep "$1")
if [ "$1" = "$STRING" ]
then
echo "online"
else
echo "offline"
fi
一些意见和建议:
=
两侧都没有空格(这是您的错误消息来源)。$( )
语法。有关详情,请参阅command substitution。username
将是更好的选择。答案 1 :(得分:2)
你正在努力做到这一点。
$ cat user.sh
#!/bin/bash
# user.sh username - shows whether username is logged on or not
if who | grep --silent "^$1 " ; then
echo online
else
echo offline
fi
$ ./user.sh msw
online