Ideas for while loop


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Ideas for while loop
# 1  
Old 10-05-2014
Ideas for while loop

idealy, i'd like to do something like this:

Code:
while read line
do
        echo $line
done < $(egrep error /var/log/syslog)

but when i do, i get an unexpected response. i.e.

Code:
cat test:

#!/bin/sh

while read line
do
        echo $line
done < $(egrep error /var/log/syslog)

## ./test

when i run the above, while it does print each line, at the very end, it prints the following error message:

i get an error at the last line that says:

Code:
: File name too long

i'm using the above method because it appears to be faster than this:
Code:
egrep error /var/log/syslog | while read line
do
        echo $line
done

# 2  
Old 10-06-2014
What's wrong with a simple
Code:
egrep error /var/log/syslog

???
This User Gave Thanks to achenle For This Post:
# 3  
Old 10-06-2014
I think the while loop is expecting a filename.

you could redirect the output to a file
Code:
egrep error /var/log/syslog > /tmp/error.out

while read line
do
        echo $line
done < /tmp/error.out

rm /tmp/error.out


Last edited by ongoto; 10-06-2014 at 12:57 AM.. Reason: forgot code tags
This User Gave Thanks to ongoto For This Post:
# 4  
Old 10-06-2014
Assuming the echo $line is nothing more that a place holder test, if your shell supports it.
Code:
while read line
do
    echo $line
done < <(egrep error /var/log/syslog)

This User Gave Thanks to Aia For This Post:
# 5  
Old 10-06-2014
Quote:
Originally Posted by SkySmart
idealy, i'd like to do something like this:

Code:
while read line
do
        echo $line
done < $(egrep error /var/log/syslog)

but when i do, i get an unexpected response. i.e.

Code:
 
cat test:
 
#!/bin/sh
 
while read line
do
        echo $line
done < $(egrep error /var/log/syslog)
 
## ./test

when i run the above, while it does print each line, at the very end, it prints the following error message:

i get an error at the last line that says:

Code:
: File name too long

i'm using the above method because it appears to be faster than this:
Code:
egrep error /var/log/syslog | while read line
do
        echo $line
done

Hello SkySmart,

Could you please try following and let me know if this helps.

Code:
while read line
do
        echo $line
done < "$(egrep error /var/log/syslog)"

Thanks,
R. Singh

Last edited by RavinderSingh13; 10-06-2014 at 01:57 AM..
This User Gave Thanks to RavinderSingh13 For This Post:
# 6  
Old 10-06-2014
Quote:
Originally Posted by RavinderSingh13
Hello SkySmart,

Could you please try following and let me know if this helps.

Code:
while read line
do
        echo $line
done < "$(egrep error /var/log/syslog)"

Thanks,
R. Singh
i tried this. got the same error.
# 7  
Old 10-06-2014
The loop expects a file after the redirect of stdin (<), which command substitution will not provide (unless the file happens to contain a single filename). Try a redirect through a pipe:
Code:
egrep error /var/log/syslog | 
while read -r line
do
  printf "%s\n"  "$line"
done

or in bash / ksh93 / zsh you can also provide a constructed file like this (process substitution) if you want:
Code:
while read -r line
do
  printf "%s\n"  "$line"
done < <(egrep error /var/log/syslog)

Edit : Just noticed Aia already suggested something similar to the latter option..

Last edited by Scrutinizer; 10-06-2014 at 02:43 AM..
This User Gave Thanks to Scrutinizer For This Post:
Login or Register to Ask a Question

Previous Thread | Next Thread

8 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Help me get some ideas

Hello, I have been given a scripting project, but have not learned any scripting. I need to get some ideas on how to start. Attached is part of the project: I have no idea how to parse the arguments. What I had in mind was to get the arguments ($1, $2, ... ) and have if statements for different... (1 Reply)
Discussion started by: facepalm
1 Replies

2. UNIX and Linux Applications

Need ideas for graduation project based on unix or linux Need ideas for graduation project based on

Dear all, i am in last year of electronics department in engineering faculty i need suggestions for a graduation project based on unix or free bsd or linux and electronics "embedded linux " i think about embedded unix for example or device drivers please i need helps (1 Reply)
Discussion started by: MOHA-1
1 Replies

3. UNIX for Advanced & Expert Users

Sendmail - Any Ideas?

I have solaris 9 and am using sendmail to pickup requests and forward them to a bulk mail server on a different port. Now for the fun...In sendmail, I need to find a way to place a default address in the Mail From: and Rcpt To: or remove them as required - These will be picked up by the bulk mail... (3 Replies)
Discussion started by: mikey2003ma
3 Replies

4. Shell Programming and Scripting

Scripting ideas?

Hi All, How can I script the following logic? Step 1: Check if the file xyz.txt exists under direcotry test and if the size of the file xyz.txt is greater than 32MB. Step 2: If the above conditions are true(file exists and size >32 MB), then step 3, otherwise step 4 (file does not exist or... (2 Replies)
Discussion started by: Sueyoung88
2 Replies

5. Shell Programming and Scripting

any ideas?

i need to compare to dates/times given in the format MMDDhhmmYY. That is month, day, hour, minute, year. It is a 24 hour clock. I need to compare two dates to check that they are, say, less than 900 seconds apart. I have got to a point where it checks the time, turns the values into seconds and... (5 Replies)
Discussion started by: fwabbly
5 Replies

6. Cybersecurity

Any Ideas !!!!!!!!!!

Hi, I installed sybase server on a LINUX server. I assigen port 2025 whilst installation for sybase , later i uninstalled sybase and when i try to reinstall sybase and use port 2025 it throw up error saying that it is already in use, use other port number. How can I re-use the same port number... (2 Replies)
Discussion started by: suda
2 Replies

7. UNIX for Dummies Questions & Answers

The history of UNIX and the ideas behind it

Hi. I am new here, and this is my first post at the UNIX.com forums. I have read the book Fire in the Valley: The Making of the Personal Computer, and I noticed that neither UNIX nor Linux was mentioned once in the book. Why is this? What was UNIX's place in the early days of personal computers? ... (6 Replies)
Discussion started by: elendil
6 Replies

8. Shell Programming and Scripting

Any Ideas?

I have several staging directories on my UNIX server. /usr2/data1 /usr2/data2 /usr2/data3 /usr2/data4 /usr2/data5 /usr2/data6 In these directories a file is transferred from different PC's connected to the network via TCP/IP. The File name is constant for all directories. Transfers... (1 Reply)
Discussion started by: Docboyeee
1 Replies
Login or Register to Ask a Question