what is wrong here


 
Thread Tools Search this Thread
Top Forums UNIX for Dummies Questions & Answers what is wrong here
# 1  
Old 02-02-2007
what is wrong here

Hello,
I have a simple script such as

-----------------------------
#! /bin/sh


YEAR=`date -u +%Y`;
MONTH=`date -u +%m`;
DAY=`date -u +%d`;
DATE=$MONTH$DAY$YEAR
LOGFILES=auditTrail-$DATE
LOGMATCH=$LOGFILES\*
ARGUM=''

# find all files and write them to a file
find . -name "$LOGMATCH" > temp


cat ./temp | while read file_line
do
ARGUM=$file_line' '$ARGUM
echo $ARGUM
done

echo "final string contains"
echo $ARGUM
echo "nothing"

----------------------------

I was hoping that it will read a line one at the time and add to the variable ARGUM. It does exactly that within the loop. Yet, when it gets out the loop, last line
echo $ARGUM
return nothing

output looks like this
./log/auditTrail-02022007.10.out
./log/auditTrail-02022007.14.out ./log/auditTrail-02022007.10.out
./log/auditTrail-02022007.7.out ./log/auditTrail-02022007.14.out ./log/auditTrail-02022007.10.out
./log/auditTrail-02022007.1.out ./log/auditTrail-02022007.7.out ./log/auditTrail-02022007.14.out ./log/auditTrail-02022007.10.out
final string contains

nothing


-----------------------
I thought that variable ARGUM is global everywhere in the script.
What am I missing?

Thank you in advance
# 2  
Old 02-02-2007
The while runs in a subshell.

So all changes made to ARGUM are gone when the loop is done
When you change it into"

while read file_line
do
ARGUM=$file_line' '$ARGUM
echo $ARGUM
done < cat ./temp

it will work fine

Typical behavior for Linux systems or the bash shell.
# 3  
Old 02-02-2007
Thank you for the reply.
I tried, but now am getting

syntax error: `./temp' unexpected

Last edited by arushunter; 02-02-2007 at 07:20 PM..
# 4  
Old 02-02-2007
remove the cat.
# 5  
Old 02-02-2007
Indeed, the "cat" shouldn't be there, I copied/pasted a little too fast
# 6  
Old 02-02-2007
thank you again. I did remove "cat"
and my while loop look as

while read file_line
do
ARGUM=$file_line' '$ARGUM
done < ./temp

echo $ARGUM

Yet, I am still getting emty output.
echo @ARGUM produces empty string.
Any other suggestings.
Thank you in advance
# 7  
Old 02-02-2007
Switch ksh or bash. They won't do that to while loops.
 
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Why result is wrong here ? whether break statement is wrong ?

Hi ! all I am just trying to check range in my datafile pls tell me why its resulting wrong admin@IEEE:~/Desktop$ cat test.txt 0 28.4 5 28.4 10 28.4 15 28.5 20 28.5 25 28.6 30 28.6 35 28.7 40 28.7 45 28.7 50 28.8 55 28.8 60 28.8 65 28.1... (2 Replies)
Discussion started by: Akshay Hegde
2 Replies

2. UNIX for Advanced & Expert Users

What am I doing wrong here?

I am working on a simple login ID check shell script that should prompt for a user ID then check to see if this user is logged on. Trying to get the hang of this stuff so I am thinking of my own little projects. #! /bin/sh echo "please enter a user name" read user if user=$user then... (3 Replies)
Discussion started by: jsk319342
3 Replies

3. Shell Programming and Scripting

Is there anything wrong?

For one of my script, I want one extra parameter needs to be added to one of the Usage option. Below its given #Check Input parameters are valid if ; then function usage() { echo echo "*******************************************" echo " !!! USAGE... (2 Replies)
Discussion started by: raghunsi
2 Replies

4. UNIX for Dummies Questions & Answers

What is wrong in here ???

]#PATH=/usr/bin:/etc:/bin:/boot/grub:/boot/grup/bin: /boot/solaris/bin:/sbin:/usr/openwin/bin:/usr/5bin://usr/X11/bin:/usr/apache/bin:/usr/apache2/bin:/usr/appserver/bin:... (9 Replies)
Discussion started by: microbot
9 Replies

5. Shell Programming and Scripting

what I m doing wrong?

when user select option 2 nothing happen.for testing purpose I put echo command but is not executing . basically when user prompt for option 2,I want to get list of database name from user separeted by space (TEST DEVL) and put into the file seprated by new line TEST DEVL after that stay on... (1 Reply)
Discussion started by: okreporthai
1 Replies

6. UNIX for Dummies Questions & Answers

what is wrong with this tr -d?

here is my command in bash shell on Mac OS X tiger: history | tr -d emacs here is what I get: hitory | grp "" | tr -d "" hitory | grp "" | tr -d """" hitory | grp "" | tr -d '' hitory | grp "" | tr -d '' hitory | grp "" | tr -d '' hitory | grp "" | tr -d... (3 Replies)
Discussion started by: cleansing_flame
3 Replies

7. UNIX for Dummies Questions & Answers

What am I doing wrong?

I really just mess around in UNIX, for the most part, when I want to get something done. I can usually piece things together by searching for brief how-to's on Google, but the syntax errors in my following .sh file are really confusing me. I've got lots of programming experience in other places, so... (7 Replies)
Discussion started by: demonpants
7 Replies

8. Shell Programming and Scripting

Anything wrong with this

Does anyone see anything wrong with this. #getInfraFiles() #{ # cd Infra/$DAY # rm * # /usr/bin/ftp -i -n $LINE << cmd # user "$USER" "$PASSWD" # cd $INFRAPATH # binary # mget * # bye #} besides that its commented out (4 Replies)
Discussion started by: rcunn87
4 Replies

9. UNIX for Dummies Questions & Answers

Please tell me what do I do wrong here!

#!/usr/bin/csh # DAY=`date +%y%m%d` H=`date +%H` M=`date +%M` mailx -s "$H-Myfile" email@email.com</home/mydir/myfile Thanks! (4 Replies)
Discussion started by: bobo
4 Replies

10. UNIX for Advanced & Expert Users

What am I doing wrong

When I execute following shell script I am getting the following error syntax error at line 50 : `<<' unmatched What am I doing wrong :confused: Script begins here ---------------- MPAN_FILE=$1 exec 3<$MPAN_FILE ... (2 Replies)
Discussion started by: guptan
2 Replies
Login or Register to Ask a Question