Processes by User's actual names

Hi All

I am being trained in unix and am tryin to write a script for listing the user Processes by user's names exactly the following manner WITHOUT USING A TEMPORARY FILE or SED OR AWK! The format of the output I want is:

James Hallan 
PID TTY TIME CMD 
31799 pts/3 00:00:00 vim 
31866 pts/3 00:00:00 vim 
2495 pts/7 00:00:00 vim 
8368 pts/0 00:00:00 vim 
9544 pts/2 00:00:00 ps 

Peter Anderson
PID TTY TIME CMD 
8368 pts/0 00:00:00 vim 
9544 pts/2 00:00:00 ps 

So far, I have written this code and a part of the output is also shown.

echo -n > processes;

for x in $user
do



        LOGID=$x
        while IFS=: read userID junk junk junk Name junk
            do
            if [ $LOGID = $userID ];
            then
            echo "LOGID:$LOGID  Name:$Name" >> processes;
            w -s ${LOGID}|cut -c'10-200' >> processes;
            echo >> processes;
            fi
            done < /etc/passwd

done

more processes;

OUTPUT:

LOGID:james.hallan  Name:James Hallan
 up 5 days, 23:34, 46 users,  load average: 0.22, 0.28, 0.26
TTY      FROM               IDLE WHAT
pts/45   172.21.2.109      3:46  vim checking

LOGID:peter.anderson  Name:Peter Anderson
 up 5 days, 23:34, 46 users,  load average: 0.22, 0.28, 0.26
TTY      FROM               IDLE WHAT
pts/6    86.132.86.129     3:53  -bash

LOGID:laura.stewart  Name:Laura Stewart
 up 5 days, 23:34, 46 users,  load average: 0.22, 0.28, 0.26
TTY      FROM               IDLE WHAT
pts/8    172.16.1.163     52.00s vim hangman

 

My trainer says its not the exact same output and as you see I have used a temporary file. How can I get rid of the temporary file and get the exact same output without using SED or AWK.

The main problem I am facing is that when I use the "users" command, if a particular user is logged in from two different terminals, the output has 2 entries for that user. For eg; if james is logged in on 2 terminals, the "users" command will give print james.hallan twice on standard output. Now how do i get rid of one james.hallan entry without using sed and awk.

Secondly, how do i get the output in exactly the same format. This is very frustrating for me as I am almost there and I feel kind of helpless. Any help would be appreciated.

duplicate post, proceed here