Let's take this as a sample input file:
$ cat file
jim|process1|23
bob|process2|5
jim|process3|7
Using awk
Now, let's create this shell script:
$ cat script.sh
#!/bin/sh
read -p "Please Enter a UserName: " uname
awk -v n="$uname" -F\| '$1==n{total+=$3} END{printf "Total for %s is %s minutes\n",n,total}' file
As an example, let's sum up the time used by jim:
$ bashsh script.sh
Please Enter a UserName: jim
Total for jim is 30 minutes
How it works
 awk implicitly loops through every line in the input file.  This script uses two variables: n which is the user name and total which is the running total of minutes used by user n.
- -v n="$uname"- This creates an awk variable - nand assigns to it the value of the shell variable- uname.
- -F\|- This tells awk to use - |as the field separator
- $1==n{total+=$3}- Every time the first field, - $1, matches the user name,- n, we increment the total- totalby the amount of the third field,- $3.
- END{printf "Total for %s is %s minutes\n",n,total}- When we are done reading the file, we print out the result. 
Using shell
Alternatively, we can do the looping in shell:
$ cat script2.sh 
#!/bin/sh
read -p "Please Enter a UserName: " uname
while IFS=\| read -r name process minutes; do
    [ "$name" = "$uname" ] && total=$((total+minutes))
done <file
echo "Total for $uname is $total minutes"
As a demonstration:
$ sh script2.sh
Please Enter a UserName: jim
Total for jim is 30 minutes
 I haven't timed the two approaches but I expect that awk will be much faster.
 
                