tee problem


 
Thread Tools Search this Thread
Top Forums UNIX for Dummies Questions & Answers tee problem
# 1  
Old 02-18-2004
tee problem

Hi you,

This the code I have:

function show_menu {

echo " lalalalal"
echo " 1. ...."
echo " 2. ...."
echo " 3. exit"
read choice

case $choice in
1) ... ;;
2) ...;;
*) stop=1;;
esac

}

##main
while [ ! $stop ]; do
show_menu | tee -a event.log
done

before I added the tee command to generate a log file, this worked perfectly. But with tee, the loop will never end, because stop will never change to 1.
Could you explain me why?
How can I solve this?
Even when I add an 'exit 1' instead of stop=1 it won't work!

Thanks for any help.

Ben Sky
# 2  
Old 02-18-2004
Ben,

I'm not sure but why do you use a tee. If I were you is would redirect the output to the logfile.

...
show_menu >> event.log
...

Greetings,

Chris
# 3  
Old 02-18-2004
plz, forget my previous post. I think I was still sleeping... Smilie

Chris
# 4  
Old 02-18-2004
I got a solution for my problem, I put the while loop into the show_menu function.
But it is still not clear for me why my old approach does not work.
# 5  
Old 02-18-2004
Quote:
Originally posted by bensky
But it is still not clear for me why my old approach does not work.
The command:
show_menu
works the way you think it works. You invoked a function and the current shell can run it. When stop is changed inside the function, it affects the main shell's copy of "stop".

But:
show_menu | tee -a event.log
is a pipeline. Now a subshell must be spawned to run show_menu. And the function is changing the private version of "stop" in the subshell.

ksh is the only shell that I know that can run the last command of a pipeline in the current shell. This allows stuff like
echo hello | read variable
to work. But I don't know of any shell that can run the rest of a pipeline in the current shell.

See this post for another approach.
# 6  
Old 02-18-2004
OK, it is true, you can find in this forum an answer for each UNIX question. Thanks a lot!
 
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Mindboggling difference between using "tee" and "/usr/bin/tee" in bash

I'm on Ubuntu 14.04 and I manually updated my coreutils so that "tee" is now on version 8.27 I was running a script using bash where there is some write to pipe error at some point causing the tee command to exit abruptly while the script continues to run. The newer version of tee seems to prevent... (2 Replies)
Discussion started by: stompadon
2 Replies

2. Shell Programming and Scripting

Help with tee command

In the current directory , I have seven files . But when I use the following command , it lists eight files ( 7 files + file_list.xtx) ls -1 | tee file_list.xtx | while read line; do echo $line ; done Does the tee command create the file_list.xtx file first and then executes the ls -1... (1 Reply)
Discussion started by: kumarjt
1 Replies

3. Shell Programming and Scripting

tee and functions

Greetings! My apologies if this has been answered elsewhere before. What I have is a function (as below) set up to append to either an error log or info log based upon input. myLOGGER () { if ]; then logfile=$elog lastERROR="$1" #used elsewhere in my script else... (2 Replies)
Discussion started by: reid
2 Replies

4. UNIX for Dummies Questions & Answers

Problem using tee to capture activity - nothing happens

Hi, I'm sure this is real simple but in the looking I've done I haven't seen it addressed (or didn't realize it). I've started up a PuTTY connection to our UNIX box and started screen and script - no problems. Then I typed "tee teeKH18.txt" expecting it to start tee and dump all activity into... (2 Replies)
Discussion started by: Mike Welch
2 Replies

5. Shell Programming and Scripting

Using tee

I have been using the command tee to store the output to a file and also write on the terminal. However I would need to put the program in the background although I would still need to see the file being updated like it was doing when using tee. Any suggestions on how to look at the log file... (3 Replies)
Discussion started by: kristinu
3 Replies

6. Shell Programming and Scripting

problem with suppressed output to file using echo and tee command

Hi, When I run the following command in terminal it works. The string TEST is appended to a file silently. echo TEST | tee -a file.txt &>/dev/null However, when I paste this same line to a file, say shell1.sh, and use bourne shell . I run this file in terminal, ./shell1.sh. However I... (1 Reply)
Discussion started by: shahanali
1 Replies

7. Shell Programming and Scripting

tee

Someone recently advised me to use the tee command to write to standard out. Why would you pipe your commands to tee -a <filename> rather than just using >> <filename> ? For example: date|tee -a myfile seems to be the same as date >> myfile Is there a benefit to... (5 Replies)
Discussion started by: fracken_toaster
5 Replies

8. Shell Programming and Scripting

removing tee

Hi, I have a script where i want to log in details to the standard output as well as log file so that its easy for tracing purposes. I have used the "tee"command. The problem with this is my scripts lines are getting longer as for each line i have #!/bin/ksh echo "hello world" |... (4 Replies)
Discussion started by: pinnacle
4 Replies

9. UNIX for Dummies Questions & Answers

tee

hello how to append the hostname to each line of a file that is tee'd for example: tail -f file1 | tee file2 Iwant file2 to have the same new lines of file1 but with the hostname at the end or the beginning of each line. btw, is there more proper method than: tail -f file1 | tee... (1 Reply)
Discussion started by: melanie_pfefer
1 Replies

10. UNIX for Dummies Questions & Answers

How does tee work

Greetings to everybody. I would like to know if I can use the pipe and command tee to read from edited file and to write to him e.g. "sed '{s_A_B_}' file | tee file". :confused: I know it doesn't work with > but I don't know anything about it with tee. Thank you for your help. :) (1 Reply)
Discussion started by: Foxgard
1 Replies
Login or Register to Ask a Question