[CentOS] Unable to execute a script , Permission denied

Tue May 25 14:06:16 UTC 2010
Bob Beers <bob.beers at gmail.com>

On Tue, May 25, 2010 at 9:42 AM, Les Mikesell <lesmikesell at gmail.com> wrote:
> Bowie Bailey wrote:
>> Jatin Davey wrote:
>>> Here is the script that i am trying to execute as a non-root user:
>>>
>>> #!/bin/sh
>>> ps -C java -o thcount > /home/proc_threads/tempfile
>>> awk ' { total += $1 } END { print total } ' /home/proc_threads/tempfile
>>>
>>> here is the output when i try to execute as a non-root user:
>>>
>>> ./javathreads: line 2: /home/proc_threads/tempfile: Permission denied
>>> awk: cmd. line:1: fatal: cannot open file
>>> `/home/proc_threads/tempfile' for reading (Permission denied)
>>
>> The script is running, but the 'awk' line is failing to read
>> /home/proc_threads/tempfile.  What are the permissions on that file and
>> directory?
>>
>>
>>     $ ls -ld /home/proc_threads
>>
>>     $ ls -l /home/proc_threads/tempfile
>>
>
> Unless you have some other use for the contents of tempfile, you could use a
> pipeline instead to avoid any permissions issue.

If you don't mind, I would like to see the pipeline equivalent. :)

I used an array in a similar situation, (to avoid creating tmp file)
 but maybe that does not scale?
For this case, maybe something like this? ...

#!/bin/sh
OLD=$IFS
IFS=$'\n' R_PS=($(ps -C java -o thcount))
IFS=$OLD
# R_PS is now an array, each element is one line of the ps output

for (( i = 0; i < ${#R_PS[@]}; i++ )) ; do
   # Sum the desired arguments
done
echo $total


-Bob