script to specify the name of the user to be checked, the frequency in seconds at which the script should check. If a checking frequency is not specified, it should default to 60 seconds
So far I have got

frequency=$0
user=$1
#!/bin/sh
while [ $* -gt 60 ]
do 
who|grep $1 > /dev/null
if [ $? -z 0 ]
then
echo "users $1 is logged"
break;
else 
echo "waiting"
sleep 10
fi

probably something like

#!/bin/sh
if [ $# -eq 0 ]; then
  echo "usage: waiton <user> <frequency>"
  exit 0
fi
user=$1
frequency=$2
if [ -z "${frequency}" ]; then
frequency=60
fi

while $(true); do
  count=$(who | grep ${user} | wc -l)
  if [ ${count} -gt 0 ]; then
    echo "user ${user} is logged on ${count} times"
    exit 0
  fi
  echo "waiting for ${user}"
  sleep ${frequency}
done
commented: Thank you ,perfect +0

Thank you,Chaosless ,script working perfecly and very neat

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.