Sponsored Content
Top Forums Shell Programming and Scripting redirect stdout and stderr to file wrong order problem with subshell Post 302513553 by Osim on Wednesday 13th of April 2011 02:40:50 PM
Old 04-13-2011
redirect stdout and stderr to file wrong order problem with subshell

Hello

I read a lot of post related to this topic, but nothing helped me. Smilie

I'm running a ksh script with subshell what processing some ldap command. I need to check output for possible errors.

Code:
#!/bin/ksh
...
readinput < $QCHAT_INPUT |&
 while read -p line
 do
   echo  $line
    ...
 fi
 done | ldapadd -x -h $HOST  -p $PORT -D cn=$USER -w $PASSWD -c

sttout output:

adding new entry "qchatUserId=21999013000010,ran=cdma,key=qchatUserIdNewTest,o=sprintpcs,o=sprintpcs.com"
ldap_add: Already exists (68)


adding new entry "qchatUserId=000000mig1,ran=cdma,key=qchatUserIdNewTest,o=sprintpcs,o=sprintpcs.com"
ldap_add: Already exists (68)


ldapadd: invalid format (line 1) entry: ""



I would like to have the same output in the file.

I tried such redirecting:
Code:
done | ( ldapadd -x -h $HOST -p $PORT -D cn=$USER -w $PASSWD -c 2>&3  1>&3 ) 3>log



Code:
done | (ldapadd -x -h $HOST -p $PORT -D cn=$USER -w  $PASSWD -c 2>&1) | tee log



Code:
done | ldapadd -x -h $HOST -p $PORT -D cn=$USER -w  $PASSWD -c > log 2>&1



All have the same useless output:

$ cat log


ldap_add: Already exists (68)
ldap_add: Already exists (68)
ldapadd: invalid format (line 1) entry: ""
adding new entry "qchatUserId=21999013000010,ran=cdma,key=qchatUserIdNewTest,o=sprintpcs,o=sprintpcs.com"


adding new entry "qchatUserId=000000mig1,ran=cdma,key=qchatUserIdNewTest,o=sprintpcs,o=sprintpcs.com"

I red that stdout is buffered and stderr not. But none solutions were working.

So is there a way how to force correct order in the file?
out1
err1
out2
err2
out3
 

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Redirect stdout and stderr

How can I redirect and append stdout and stderr to a file when using cron? Here is my crontab file: */5 * * * * /dir/php /dir/process_fns.php >>& /dir/dump.txt Cron gives me an 'unexpected character found in line' when trying to add my crontab file. Regards, Zach Curtis POPULUS (8 Replies)
Discussion started by: zcurtis
8 Replies

2. UNIX for Dummies Questions & Answers

redirect stderr and/or stdout to /dev/null from command line

Is it possible to redirect errors at the command line when you run the script such as bash scriptname & 2>/dev/null? (1 Reply)
Discussion started by: knc9233
1 Replies

3. Shell Programming and Scripting

How to redirect stderr and stdout to a file

Hi friends I am facing one problem while redirecting the out of the stderr and stdout to a file let example my problem with a simple example I have a file (say test.sh)in which i run 2 command in the background ps -ef & ls & and now i am run this file and redirect the output to a file... (8 Replies)
Discussion started by: sushantnirwan
8 Replies

4. Shell Programming and Scripting

Redirect stdout/stderr to a file globally

Hi I am not if this is possible: is it possible in bach (or another shell) to redirect GLOBALLY the stdout/stderr channels to a file. So, if I have a script script.sh cmd1 cmd2 cmd3 I want all stdout/stderr goes to a file. I know I can do: ./script.sh 1>file 2>&1 OR ... (2 Replies)
Discussion started by: islegmar
2 Replies

5. Shell Programming and Scripting

Preserve output order when redirecting stdout and stderr

Hi, I already searched through the forum and tried to find a answer for my problem but I didn't found a full working solution, thats way I start this new thread and hope, some can help out. I wonder that I'm not able to find a working solution for the following scenario: Working in bash I... (8 Replies)
Discussion started by: Boemm
8 Replies

6. Shell Programming and Scripting

redirect STDOUT to a file in a subshell

Hi, I would like to avoid re-directing line by line to a file. What is the best way to re-direct STDOUT to a file in a subshell? Thanks in advance. Cheers Vj (1 Reply)
Discussion started by: tnvee
1 Replies

7. Red Hat

Redirect STDOUT and STDERR of chsh

EDIT: Nevermind, figured it out! Forgot to put backslashes in my perl script to not process literals! Hi everyone. I am trying to have this command pass silently. (no output) chsh -s /bin/sh news Currently it outputs. I've tried.... &> /dev/null 1> /dev/null 2>&1 /dev/null 1>&2... (1 Reply)
Discussion started by: austinharris43
1 Replies

8. Shell Programming and Scripting

Redirect STDOUT & STDERR to file and then on screen

Dear all, redirecting STDOUT & STDERR to file is quite simple, I'm currently using: exec 1>>/tmp/tmp.log; exec 2>>/tmp/tmp.logBut during script execution I would like the output come back again to screen, how to do that? Thanks Lucas (4 Replies)
Discussion started by: Lord Spectre
4 Replies

9. Shell Programming and Scripting

Have each subshell write stderr and stdout to its own logfile

Hello, As stated in the title, I do some hacked parallel processing by running multiple instances of bash scripts, each in their own subshell. The code looks like this, # launch one batch-train script in background for each value in fold group list for FOLD_GROUP in "${FOLD_GROUP_LIST}" do ... (5 Replies)
Discussion started by: LMHmedchem
5 Replies

10. Shell Programming and Scripting

Redirect STDOUT & STDERR to file and then on screen

Dear all, redirecting STDOUT & STDERR to file is quite simple, I'm currently using: Code: exec 1>>/tmp/tmp.log; exec 2>>/tmp/tmp.log But during script execution I would like the output come back again to screen, how to do that? Thanks Luc edit by bakunin: please use CODE-tags like the... (6 Replies)
Discussion started by: tmonk1
6 Replies
All times are GMT -4. The time now is 09:40 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy