Print the one function's log to the screen


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Print the one function's log to the screen
# 1  
Old 11-24-2014
Print the one function's log to the screen

Code:
c()
{
     if something failed;then
    echo "failed"
    exit 1 
     fi
}

f()
{
functinona  #if something failed call "c"
functionb   #if something failed call "c"  
}

f > log 2>&1 #put the log to file not print on the screen


I want all the stdout/stdrr to the log file without print on the screen, but I want the function "c" 's output on the screen
# 2  
Old 11-24-2014
Redirect the echo to the tty:
Code:
echo "failed" > /dev/tty

But this will work only if there is an active tty. But if you add:
Code:
if tty -s; then
   exec 3> /dev/tty # corrected from /dev/null
else
  exec 3>&2
fi

at the top of your script, and then change the echo to:
Code:
echo "failed" 1>&3

This will send the failed messages to stderr if there is no tty.

Last edited by derekludwig; 11-24-2014 at 02:51 PM.. Reason: wrong device
# 3  
Old 11-24-2014
Quote:
Originally Posted by derekludwig
Redirect the echo to the tty:
Code:
echo "failed" > /dev/tty

But this will work only if there is an active tty. But if you add:
Code:
if tty -s; then
   exec 3> /dev/null
else
  exec 3>&2
fi

at the top of your script, and then change the echo to:
Code:
echo "failed" 1>&3

This will send the failed messages to stderr if there is no tty.

Code:
f()
{
    echo "xx"
        if tty -s; then
           exec 3> /dev/null
        else
          exec 3>&2
        fi
        echo "failed" 1>&3
}

f > x

I don't see the "failed" print on the screen
-------------------------------------------------------------------------------------

but if I use below, it works

Code:
f()
{
    echo "xx"
        if tty -s; then
           exec 3> /dev/null
        else
          exec 3>&2
        fi
        echo "failed" > /dev/tty
}

f > x  2>&1

# 4  
Old 11-24-2014
Apologies, it should have been:
Code:
exec 3> /dev/tty

Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

The pipe not use "tee" to print on the screen for specific function

I have code fragment like { aa bb cc } > $LOG aa bb cc, all call function "ff", I want "ff" to print on the screen,but others do not print on the scree, is there a method? I can't use "tee", becasue tee I meet the write "error" ff() { echo "hello" } (2 Replies)
Discussion started by: yanglei_fage
2 Replies

2. Shell Programming and Scripting

Print variable on screen

Hi, I've stored the output of a command into a variable. The variable contains the following output: outputline1 outputline2 outputline3 ... How can I echo the variable so that the output is as follow and not one line: outputline1 outputline2 outputline2 ... Thanks a lot! (4 Replies)
Discussion started by: Sego
4 Replies

3. Shell Programming and Scripting

Print from screen session

Hello everyone, Following command sends word 'test' followed by an enter into a screen session (in our case screen_1). How do I print the result, if that would result ? How do I print the result, even if the program running in the session is locked ? Thank you :) screen -S screen_1 -X... (5 Replies)
Discussion started by: akula_1986
5 Replies

4. Shell Programming and Scripting

Print on the screen a table in ascii

Hi Is there some kind of generator in the internet which could help me to create a table where i will place some values. Trying to do this with echo cmd, but maybe you will suggest me some generator fo r this. thx. ---------- Post updated at 10:59 AM ---------- Previous update was at... (2 Replies)
Discussion started by: presul
2 Replies

5. AIX

print screen

Hi all, Could you please tell me how to take a screenshot in aix (like Print Screen button in windows)? Thanks (7 Replies)
Discussion started by: prashantchavan
7 Replies

6. Shell Programming and Scripting

perl - print to a log file and screen

as the title suggests, i need to print a user message to a log file and the screen using perl. in unix i set up a function using 'tee' like so function Display_Message { echo "$*" | tee -ai $LOGFILE } the following command then obviously displays to the screen and prints to a log... (6 Replies)
Discussion started by: mjays
6 Replies

7. Shell Programming and Scripting

print to screen and to file using awk?!

Hello all!.. does anyone know the syntax to print to the screen and to a file? Im using something like AWK .... print header |tee -a invalid_csv_file ; END {..} ' invalid_csv_file="$invalid_csv_dir_file" but no joy? I get sh:... (2 Replies)
Discussion started by: satnamx
2 Replies

8. UNIX for Dummies Questions & Answers

How to print content on the screen

I have the following questions regrading Unix commands. 1. Could you provide the commands how to print the content of .profile and .shrc files on the screen using more and piple command? or a better way? 2. How can i use the head and tail to display lines from 25 through 75... or a better... (4 Replies)
Discussion started by: aadba
4 Replies

9. UNIX for Advanced & Expert Users

How to print contents on the screen?

I have the following questions regrading Unix commands. 1. Could you provide the commands how to print the content of ".profile" and ".shrc" files on the screen using "more" and "piple" command? 2. How can i use the "head" and "tail" to display lines from 25 through 75... 3. How to search... (1 Reply)
Discussion started by: aadba
1 Replies

10. UNIX for Dummies Questions & Answers

how to print screen in linux

Hi All, Perhaps a dumb question, but how do you do a "print screen" within the X-Window in linux. I'm running KDE, is there a utility I can use in that package that I'm not aware of. Or, is there a way to turn on the <alt><print-screen> function with the keyboard? Thanks in advance. VJ (2 Replies)
Discussion started by: vancouver_joe
2 Replies
Login or Register to Ask a Question