用于指定用户登录到计算机的Shell脚本
我需要在代码中集成第二个参数,允许用户指定脚本在什么时候检查谁登录。我现在把它设置为60秒,这需要是默认频率。我试图使用另一个功能,但没有用。我想到了这样的事情用于指定用户登录到计算机的Shell脚本,shell,Shell,我需要在代码中集成第二个参数,允许用户指定脚本在什么时候检查谁登录。我现在把它设置为60秒,这需要是默认频率。我试图使用另一个功能,但没有用。我想到了这样的事情 username=$1 freq=$2 checkuser() { if who grep "$1" then sleep 60 fi } if [ -n "$1" ] then echo "Enter username" read username checkuser echo -e "$1 is logged o
username=$1
freq=$2
checkuser()
{
if who grep "$1"
then
sleep 60
fi
}
if [ -n "$1" ]
then
echo "Enter username"
read username
checkuser
echo -e "$1 is logged on \a"
echo -e "$1 logged in at `date`">>LOG
checkuser
else
echo "User is not logged on"
fi
谢谢威廉的帮助!!我对代码做了一点修改,然后想出了这个。我现在需要添加第三个参数“X”,当选中它时,它只向日志文件而不是屏幕发送消息。我做了一次尝试,但没有按计划做
if [ "$2" -ne 0 ]
then
freq=$2
else
freq=60
还请注意,您可以简化用户名的设置:
username=$1
freq=${2:-60} # Set a default frequency
checkuser(){ who | grep -q "$1"; }
while ! checkuser "$username"; do
echo "User is not logged on"
sleep $freq
done
echo "$1 is logged on"
一个简单的shell脚本,以用户名作为输入,并确定用户当前是否登录
echo 'Enter id'
read id
res=`who | grep "$id" | wc -l`
if [ $res -eq 0 ]
then
echo 'user is not logged in'
else
echo 'user is logged in'
fi
username=${1:-$( echo "Enter username: "; read u; echo $u; )}
echo 'Enter id'
read id
res=`who | grep "$id" | wc -l`
if [ $res -eq 0 ]
then
echo 'user is not logged in'
else
echo 'user is logged in'
fi
if [[ $# -eq 0 ]]; then
echo "Usage: " $0 "username"
exit 1
fi
result="$(who | grep $1 | wc -l)"
if [[ $result -gt 0 ]]; then
echo "$1 is currently logged in"
else
echo "$1 is not logged in"
fi
exit 0