problem with output.

 
Thread Tools Search this Thread
Homework and Emergencies Homework & Coursework Questions problem with output.
# 1  
Old 04-23-2010
problem with output.

Use and complete the template provided. The entire template must be completed. If you don't, your post may be deleted!

1. The problem statement, all variables and given/known data:

something is wrong with my output

2. Relevant commands, code, scripts, algorithms:

it has something to do with the expr command, i don't know what is wrong though.

3. The attempts at a solution (include all code and scripts):

Code:
#!/bin/sh

#James Brooks
#COP3353 - Assignment 4
#4/23/10

file=$1
directories=0
files=0
rfiles=0
xfiles=0
wfiles=0

if [ $# -ne  1 ]
   then
        echo "Usage: assignment4.sh <directory_name>"
exit
fi


if [ ! -d $file ]
then
        echo "$file: is not a directory"
exit
fi
        

for filename in $file/*
     do
        if [ -r $filename ];
            then 
             rfiles = `expr $rfiles + 1`   
        fi

        if [ -x $filename ]
           then
                xfiles = `expr $xfiles + 1`
        fi
 if [ -w $filename ] 
           then  
                wfiles = `expr $wfiles + 1`
        fi

        if [ -d $filename ]
           then
                directories = `expr $directories + 1`
        fi
        if [ -f $filename ] 
           then  
                files = `expr $files + 1`  
        fi
done
        
echo "Total number of directories: $directories"
echo "Total number of files: $files"
echo "Total number of readable items: $rfiles"
echo "Total number of writable items: $wfiles"
echo "Total number of executable items: $xfiles"

********************************************************
my output is just a whole bunch of this:

assignment4.sh: line 32: rfiles: command not found
assignment4.sh: line 37: xfiles: command not found
assignment4.sh: line 42: wfiles: command not found
assignment4.sh: line 47: directories: command not found
assignment4.sh: line 32: rfiles: command not found
assignment4.sh: line 37: xfiles: command not found
assignment4.sh: line 42: wfiles: command not found
assignment4.sh: line 52: files: command not found
assignment4.sh: line 32: rfiles: command not found
assignment4.sh: line 42: wfiles: command not found
assignment4.sh: line 52: files: command not found
assignment4.sh: line 32: rfiles: command not found
assignment4.sh: line 42: wfiles: command not found
assignment4.sh: line 52: files: command not found
assignment4.sh: line 32: rfiles: command not found
assignment4.sh: line 37: xfiles: command not found
assignment4.sh: line 42: wfiles: command not found
assignment4.sh: line 52: files: command not found
assignment4.sh: line 32: rfiles: command not found
assignment4.sh: line 42: wfiles: command not found
assignment4.sh: line 52: files: command not found


4. Complete Name of School (University), City (State), Country, Name of Professor, and Course Number (Link to Course):
Florida State, Myers, COP3353, Assignment 4

Note: Without school/professor/course information, you will be banned if you post here! You must complete the entire template (not just parts of it).

Last edited by Scott; 04-23-2010 at 09:47 PM.. Reason: Added code tags
# 2  
Old 04-23-2010
Hi.

Start by removing the spaces when assigning variables. The shell doesn't like it. Your expr commands, per se, are fine.

i.e.
Code:
rfiles = `expr $rfiles + 1`

Should be
Code:
rfiles=`expr $rfiles + 1`

If you said
Code:
X = 1

you've more chance of starting X-Windows than assinging 1 to variable X!

I would recommend not using expr, or backticks `

The shell has more elegant ways of doing this kind of thing without either.

i.e.
Code:
$ X=1
$ ((X = X + 1))
$ echo $X
2

Or
Code:
$ X=1
$ X=$((X + 1))
$ echo $X
2

It's also good practice to quote variables.

So:
Code:
if [ ! -d $file ]

Should be:
Code:
if [ ! -d "$file" ]

And it's generally not good to pass unknown-sized argument lists to commands in this way:
Code:
for filename in $file/*

Better is to write everything to a file, and then use a construct more like:
Code:
while read A B C etc; do
...
done < file

Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Output formatting problem

Hello; I have a simple loop filtering a log: for LU in $(< LU-list-Final) do OUT=$(grep -B1 $LU cibc-src-ip.cap |egrep 'IP 16|IP 19|IP 15' |awk -F">" '{print $1}') if ; then echo " LU $LU was accessed by ===============> $OUT " echo "" fi done The current output snippet looks like... (2 Replies)
Discussion started by: delphys
2 Replies

2. Shell Programming and Scripting

Problem getting the required output

I need a Korn shell script which does the folllowing:- If there is one "|" (pipe) delimited file so, the script should check the 5th field to be blank or not. if it is a blank tht entire line of the file should be redirected to another file. if the 5th field is not blank it should pass that. ... (4 Replies)
Discussion started by: Juhi Kashyap
4 Replies

3. UNIX for Dummies Questions & Answers

Grep output problem

Hi all, Here is my problem: I'm testing a login script for our mac Machines. This script output's in a csv file. The login script looks like this: echo "${computername}|${data1}|${data2}|${data3}" >> file.csv The csv file looks like this: Computername1|data1|data2|data3... (4 Replies)
Discussion started by: mattiasvdm
4 Replies

4. UNIX for Dummies Questions & Answers

Problem adjusting the output

Hi i m running a command watch -n 1 -d netstat -i to see the packet drops every 1 second. but the problem is the output is so long(Due to large number of virtual interfaces) it doesn't fit into the putty prompt. I dont need to monitor each and every network interface I m more interested in... (5 Replies)
Discussion started by: pinga123
5 Replies

5. Shell Programming and Scripting

output problem

#!/bin/gawk -f BEGIN{} {if ($0~/<a/ || $0~/<img/) link=link+1 } {if ($0~/<a/ || $0~/<img/) cnt++ } {if ($0~/<a/ && $0~/http/ ) weblink++ } {if ($0~/<img/) filelink++ } {if ($0~/<a/ && $0!~/http/) downloadlink++ } (8 Replies)
Discussion started by: pantelis
8 Replies

6. Programming

Problem with output

Hey guys, i am having problem with displaying my text. my text file is displayed in such a way and is called test....... Sam Worthington ... Jake SullyasZoe Saldana ... NeytiriasSigourney Weaver ... Dr. Grace AugustineasStephen Lang ... Colonel Miles QuaritchasJoel Moore ... Norm Spellman (as... (1 Reply)
Discussion started by: gregarion
1 Replies

7. Shell Programming and Scripting

output formatting problem

I would like to keep the complete lines in the output, but my script adds carriage returns for each space (e.g. keep BRITISH AIRWAYS on one line in the output): File1= BAW BRITISH AIRWAYS RYR RYAN AIR for i in $(cat File1) do echo $i done Output: BAW BRITISH AIRWAYS RYR... (4 Replies)
Discussion started by: barny
4 Replies

8. Shell Programming and Scripting

Problem in output

When i use the following command to get only the ip address from a file then i get a whole sentence and not only the ip address which i want. here is the script i am using: grep '^\{1,3\}\.\{1,3\}\.\{1,3\}\.\{1,3\}$' for example if this the file content: Many blogs provide commentary or... (2 Replies)
Discussion started by: snake450
2 Replies

9. UNIX for Dummies Questions & Answers

Output Problem

What do I have to do to get the startup and shutdown Info to display on my Graphical Monitor. As of right now, all i get is the log in screen for X windows on HP-UX. I want to see the boot process (3 Replies)
Discussion started by: Eric_Bakken
3 Replies

10. UNIX for Advanced & Expert Users

problem with who -u output

I am using sco unix ver 5. who -u output lists the user name, tty,idle time and PID of the process. When I kill the idle process using kill -9 PID, the process is killed and the who -u output doesn't contain the user which is killed. This out of who -u is correct and desirable. But for past week, I... (0 Replies)
Discussion started by: V.V.KUMAR
0 Replies
Login or Register to Ask a Question