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
2番目の引数をコードに統合する必要があります。これにより、ユーザーは、スクリプトがログインしているユーザーを確認するために何時以降にチェックするかを指定できます。現在60秒に設定されており、これをデフォルトの頻度にする必要があります。別の関数を使おうとしましたが、役に立ちませんでした。こんなことを考えました...
if [ "$2" -ne 0 ]
then
freq=$2
else
freq=60
ウィリアムに感謝します。とても役に立ちました!コードを少し変更して、これを思いついた。次に、3番目の引数「X」を追加する必要があります。これを選択すると、画面ではなくログファイルにメッセージが送信されます。私は試みましたが、意図したとおりに行いませんでした。
username=$1
freq=${2:-10}
X=$3
checkuser()
{
whoami|grep "$1";
}
while checkuser "$username"
do
echo -e "$1 is logged on \a"
echo "$1 logged in at `date`">>LOGFILE
sleep $freq
exit 0
done
echo "User is not logged in"
if [ "$3" -ne 1 ]
then
echo "$1 logged in at `date`"LOGFILE
fi