getting stderr & stdout output lively modified


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting getting stderr & stdout output lively modified
# 1  
Old 10-08-2007
getting stderr & stdout output lively modified

This is about getting all output to stderr and stdout localized. Nothing to do with redirecting output to a file (there already are some interesting threads about that issue on this forum).

What I intend to do is capturing all lines of text sent to the screen, compare them with an array of stored lines and replace the matching ones in the screen for their translated equivalents.

I'm aware of TEXTDOMAIN and alike, but unfortunately many scripts are not prepared for localization, so I want to try a different approach, tryng to translate everything carelessly if the script uses $"" or not for calling gettext.

I have been trying 2 ways:

1: Getting many commands that generate writen output intercepted. After editing etc/profile, ~/bashrc, setting aliases, expand_aliases and lots of things, I can get them catched only in interactive mode, but when running a script, no alias at all is keept (nor other settings). F.i., if I type "enable" in the shell, I see that echo has dissapeared (I replace it for my own). But running a script that contents the same command, echo is enabled again!. Should not expand_aliases have avoided this?

2: Some kind of daemon that could replace the standard output and give back the translated messages (or the original ones if not matched). Even it could be enough to append the translated lines to the already shown in english. I guess that I would have to redirect /dev/fd/? , /dev/tty? or something like that but i lack the knowledge to do it, if it can be done. Some tries done with no succes.

Could anybody point a solution, advise, whatever could help?

Thank you in advance.

T. Ramírez
Ferrol (Spain)
# 2  
Old 10-08-2007
You would need to use C or something like that. This is beyond what I want want to try via a script. perl could handle it though. basicly you will need to allocate a psuedo tty and arrange for the user to interact with the pty. Your program would sit between the user's "real" tty and the psuedo tty you allocate. The program called "script" does all of this, not to translate, but to capture all input and output to a file. So you could obtain the source code to script and study that as a starting point.
# 3  
Old 10-08-2007
Quote:
Originally Posted by Perderabo
You would need to use C or something like that. This is beyond what I want want to try via a script. perl could handle it though. basicly you will need to allocate a psuedo tty and arrange for the user to interact with the pty. Your program would sit between the user's "real" tty and the psuedo tty you allocate. The program called "script" does all of this, not to translate, but to capture all input and output to a file. So you could obtain the source code to script and study that as a starting point.
I thank you very much your response. Those are bad news, since I have never learned either C or Perl. I'm not sure how but I'll try with Pascal.

Well, that can stand for "way #2". Perhaps I'm not well aware about what can be done with shell scripting and what not. But.. what about the first method? do you/anybody know why aliases don't work when running scripts, in spite of having set shopt -s expand_aliases?. Surely I'm doing something wrong. If not, what is that option supossed to be intended for?

Best,

T. Ramírez
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. 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

2. Shell Programming and Scripting

Lost redirecting stderr & stdout to 3 files - one each plus combined

Hi folks I need/want to redirect output (stdout, stderr) from an exec call to separate files. One for stderr only and two(!) different (!) ones for the combined output of stderr and stdout. After some research and testing i got this so far : (( exec ${command} ${command_parameters} 3>&1... (6 Replies)
Discussion started by: MDominok
6 Replies

3. 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

4. Shell Programming and Scripting

Prepend TimeStamp to STDERR & STDOUT to a file

Currently I am redirecting STDERR and STDOUT to a log file by doing the following { My KSH script contents } 2>&1 | $DEBUGLOG Problem is the STDERR & STDOUT do not have any date/time associated. I want this to be something that i can embed into a script opposed to an argument I use... (4 Replies)
Discussion started by: nitrobass24
4 Replies

5. Solaris

Handling Stdout&StdErr for background jobs.

Hello Friends, sorry, i am not very familiar with Unix programming. Could you please help me on this? We have to start different components from a startup script. each components are started as below in the background in a startprocess function $nohup $file $args >>$logFile 2>&1 & ... (1 Reply)
Discussion started by: alvinbush
1 Replies

6. Shell Programming and Scripting

Handling Stdout&StdErr for background jobs.

Hello Friends, sorry, i am not very familiar with Unix programming. Could you please help me on this? We have to start different components from a startup script. each components are started as below in the background in a startprocess function $nohup $file $args >>$logFile 2>&1 & ... (0 Replies)
Discussion started by: alvinbush
0 Replies

7. Shell Programming and Scripting

Redirecting STDERR message to STDOUT & file at same time

Friends I have to redirect STDERR messages both to screen and also capture the same in a file. 2 > &1 | tee file works but it also displays the non error messages to file, while i only need error messages. Can anyone help?? (10 Replies)
Discussion started by: vikashtulsiyan
10 Replies

8. UNIX for Advanced & Expert Users

combined stdout & stderr

Hello Everyone! I'm trying to combine output for standard output and for possible standard error to the log file. I was trying to use tee command, but it turned out if error occurred error output will be send to the screen only and will not be redirected with tee command to the log file. Anyone... (11 Replies)
Discussion started by: slavam
11 Replies

9. Shell Programming and Scripting

redirecting STDOUT & STDERR

In bash, I need to send the STDOUT and STDERR from a command to one file, and then just STDERR to another file. Doing one or the other using redirects is easy, but trying to do both at once is a bit tricky. Anyone have any ideas? (9 Replies)
Discussion started by: jshinaman
9 Replies

10. Shell Programming and Scripting

stderr & stdout to a file and the right exit code

Hi all, I need to redirect stdout and stderr to a file in a ksh shell. That's not a problem. But I need also the correct exit code for the executed command. In the example below I redirect correctly the stdout & stderr to a file, but I have the exit code of tee command and not for the mv... (2 Replies)
Discussion started by: up69
2 Replies
Login or Register to Ask a Question