problem with redirect stdout to file


 
Thread Tools Search this Thread
Top Forums UNIX for Advanced & Expert Users problem with redirect stdout to file
# 1  
Old 12-06-2006
Data problem with redirect stdout to file

Hi all hope you can help as I am going MAD!!! Smilie

The below is in a shell script but the redirection in the sed line does not work and outputs to the screen and the $fname_2 does note get created ?????

Can any one help ??

Code:
#!/bin/ksh
cd /app/
for fname in `ls -1 X*`
do
sed 1d $fname > $fname_2
done

if I run
Code:
sed 1d filename > filename_2

on the command line it works ???
# 2  
Old 12-06-2006
We ran into the same problem the other day in one of our scripts.

You need to change your $fname to ${fname}

Look at this script to see the behaviour.

Code:
[/tmp]$ cat try.sh
#! /bin/sh

a=12
b=34
echo $a_$b
echo ${a}_$b
[/tmp]$ sh try.sh
34
12_34
[tmp]$

From man sh

Code:
       ${parameter}
              The value of parameter is substituted.  The braces  are  required
              when  parameter  is  a  positional  parameter  with more than one
              digit, or when parameter is followed by a character which is  not
              to be interpreted as part of its name.


Last edited by vino; 12-06-2006 at 07:32 AM..
# 3  
Old 12-06-2006
Quote:
Originally Posted by vino
We ran into the same problem the other day in one of our scripts.

You need to change your $fname to ${fname}

Look at this script to see the behaviour.

Code:
[/tmp]$ cat try.sh
#! /bin/sh

a=12
b=34
echo $a_$b
echo ${a}_$b
[/tmp]$ sh try.sh
34
12_34
[tmp]$

Hi thanks that did the trick.

Do you know why this is the case ?? I have used the $fname in loads of scripts before with out having to use the {}
# 4  
Old 12-06-2006
Yes.
$fname_2 expects that fname_2 is the name of the variable - and you want the _2 to be part of the name not part of a new variable name.

You can also use $fname"_2" to force the _2 to be a constant, and not a variable.
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. Programming

C, UNIX: How to redirect 'stdout' to a file from a C code?

I am looking for a way to redirect standard output to a file from a C-code; so, any 'cout<<..' or 'printf(...)' will be written into a file. I have a server source that I need to debug. That program called by RPC (remote procedure call) and has no any session to print out anything. I have... (3 Replies)
Discussion started by: alex_5161
3 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. UNIX for Dummies Questions & Answers

STDOUT redirect to file and format problems

Hi All, I am using centOS. When I try to redirect STDOUT to a file, it ends up in getting some funny characters. For example ... STDOUT of the command as follows. $ ls H3k27me3 H3k36me3 H3k4me1 H3k4me2 H3k4me3 H3k9ac H4k20me1 $ ls >test $ cat test ^ (1 Reply)
Discussion started by: Chulamakuri
1 Replies

5. Shell Programming and Scripting

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. :mad: I'm running a ksh script with subshell what processing some ldap command. I need to check output for possible errors. #!/bin/ksh ... readinput < $QCHAT_INPUT |& while read -p line do echo $line ... (3 Replies)
Discussion started by: Osim
3 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. 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

8. Programming

redirect stdout

hello again! i use dup2 to redirect stdout. I run what i want, now i want undo this redirection. how can i do that? thanx in advance (7 Replies)
Discussion started by: nicos
7 Replies

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

10. UNIX for Advanced & Expert Users

STDOUT redirect to a FILE, when fuser command is used !!

Hi all, I have the following script: ------------------------------------------------- #SCRIPT TO CHECK WHO HAS ACCESSED THE LOG/FILE IN PAST 'N' MINUTES, AND MAIL ACCORDINGLY. MYPATH="/clocal/mqbrkrs/user/mqsiadm/sanjay/" MAIL_RECIPIENTS="vg517@dcx.com" Subject="File accessed in last... (6 Replies)
Discussion started by: varungupta
6 Replies
Login or Register to Ask a Question