05-15-2008
hi era ,
what i mentioned there was we giving sh -x filename.sh gives us step wise execution of the program and if i give exec 2>path/file inside a script ...
and when i open the file that is getting created it contains a step wise execution of the program...
this is what i give in the script...
#!bin/sh
cd /NRS
#exec 2>error_$tar_name.log
sql_inp=/NRS/sql.inp
sql_log=/NRS/sql.log
if [ -f /NRS/inp.txt ]
then
echo "Data file /NRS/Bin/inp.txt exists"
else
echo "Data file /NRS/Bin/inp.txt does NOT exists"
exit
fi
# to remove comments from the file inp.txt
grep -v \# /NRS/inp.txt > /NRS/temp_inp
nol=`wc -l temp_inp | awk '{print$1}'`
if [ $nol -ne 2 ]
then
echo "supply all the necessary arguements in the inp.txt file "
else
tar_name=`head -1 temp_inp | tail -1`
ip_addr=`head -2 temp_inp | tail -1`
#usr=`head -3 temp_inp | tail -1`
#pwd=`head -4 temp_inp | tail -1`
fi
log=/NRS/$tar_name.log
etc....
and when i open the error_$tar_name.log :
+ [ -f /NRS/inp.txt ]
+ echo Data file /NRS/Bin/inp.txt exists
+ grep -v # /NRS/inp.txt
+ awk {print$1}
+ wc -l temp_inp
nol=2
+ [ 2 -ne 2 ]
+ tail -1
+ head -1 temp_inp
tar_name=star_nrs_4_25_0.tar.Z
+ head -2 temp_inp
what i had asked was whether can i redirect only the stderrors that i might get .... becoz this is a very big program and has some where around 600 commands that i need to perform so instead of giving 2> at the end of each command can i redirect all of them at one go ...
thanks
10 More Discussions You Might Find Interesting
1. Shell Programming and Scripting
I have written a script that appears to work correctly in testing, but is coming up with a starnge error message,
script_name: test: 0403-004 Specify a parameter with this command.
Redirection or piping of stdin or stdout is allowed only with -b. (156).
The script is run by different... (2 Replies)
Discussion started by: mariner
2 Replies
2. Shell Programming and Scripting
Hello All,
I was wondering is there any other way in Shell Scripting to redirect the errors to a output file inside a shell script with using a error status checking or a command line redirection.
Say without doing this
ksh test.ksh 2> error.txt
or without doing this ...
if ; then... (3 Replies)
Discussion started by: maxmave
3 Replies
3. Shell Programming and Scripting
My script is throwing the error 'Syntax error: redirection unexpected'
My line of code..
cat nsstatustest.html | sed s/<tr><td align="left">/<tr><td align="left" bgcolor="#000000"><font color="white">/ > ztmp.Ps23zp2s.2-Fpps3-wmmm0dss3
HTML tags are getting in the way but they're needed to... (3 Replies)
Discussion started by: phpfreak
3 Replies
4. Shell Programming and Scripting
hi :)
if condition >&- 2>&-
Can anybody explain the redirection in above command
Thanks in advance (1 Reply)
Discussion started by: jpriyank
1 Replies
5. Shell Programming and Scripting
I'm trying to find average of values in 2nd column in some files. Filenames have following pattern eg:
tau_2.54_even_v1.xls
tau_2.54_odd_v1.xls
tau_1.60_v1.xls
tau_800_v1.xls
#!/bin/bash
for file in pmb_mpi tau xhpl mpi_tile_io fftw ; do
for f in "2.54" "1.60" "800" ;do
if... (2 Replies)
Discussion started by: vishwamitra
2 Replies
6. Shell Programming and Scripting
Hi there,
I just want to know how can I redirect error msgs returned from running a command (e.g. nslookup) and then only print out the correct output using an if statement?.
I've tried the following:
where $a is a list of IPs.
but I got all the error msgs printed out to screen and... (9 Replies)
Discussion started by: Abdulelah
9 Replies
7. Shell Programming and Scripting
Hi i am facing a very strange problem
suppose the parameters which i passed to the script is
-o 140
then my code is as follows
echo $* | awk '{ for ( i=0;i<=NF;i++){if ($i= -o) { print ${i+1} } } ' | read abc
echo $abc
abc=`echo $* | awk '{ for ( i=0;i<=NF;i++){if ($i= -o) { print... (5 Replies)
Discussion started by: aishsimplesweet
5 Replies
8. UNIX for Dummies Questions & Answers
explain the redirections 1>, 2>, 3>, .....
and 1< ,2<,3<.....
where we use these things
thanks
Thread moved from AIX forum (2 Replies)
Discussion started by: tsurendra
2 Replies
9. Shell Programming and Scripting
Hi gurus,
I have a question, need some of your inputs...
I have a command like this :
export LINE_COUNT=`wc -l test.dat | awk '{print $1}'`
echo $LINE_COUNT --- > gives me 2 which is fine as the file has 2 lines.
This works fine if the file test.dat is present but in case... (3 Replies)
Discussion started by: calredd
3 Replies
10. Shell Programming and Scripting
Hi Experts,
Problem summary :
I am facing the below problem on huge files when the disk is getting full on the half way through the execution.
If the disk was already full , the commands fail & everything is fine.
Sample Code :
head_rec_data_file=`head -1 sample_file.txt`
cat... (9 Replies)
Discussion started by: Pruthviraj_shiv
9 Replies
LEARN ABOUT DEBIAN
giisplitinputs
giiOpen(3) GGI giiOpen(3)
NAME
giiOpen, giiJoinInputs, giiSplitInputs, giiClose - Open, join, split and close inputs
SYNOPSIS
#include <ggi/gii.h>
gii_input_t giiOpen(const char * input, ...);
gii_input_t giiJoinInputs(gii_input_t inp, gii_input_t inp2);
int giiSplitInputs(gii_input_t inp, gii_input_t *newhand,
uint32_t origin, uint32_t flags);
int giiClose(gii_input_t inp);
DESCRIPTION
giiOpen opens an input. This function is given the name of an input driver to load. Passing NULL here results in an auto-select mechanism,
which currently means examining the contents of GII_INPUT.
The optional arguments are a NULL-terminated list of pointers, which are used to give additional information to the targets. Currently
only the first pointer is specified: void * argptr, a pointer to a library-specific struct. It is used to pass parameters that are not eas-
ily transferable in textual form.
Parameters which can be represented in text format are usually transfered in the input parameter, in the format: library_name:arguments
giiJoinInputs joins two inputs into one. From a programmers' point of view, this closes both inp and inp2 and opens an new input that com-
bines both inputs into one. That is, after giiJoinInputs has completed, there is no need to giiClose inp and inp2 any more. When cleaning
up, you need to close the returned input instead. See the example for details. However the inputs are not actually closed or reopened
internally. That is, you will not get any startup-events or similar the driver generates, though pending events of both old inputs are
transferred to the newly created input.
giiSplitInputs splits one of the inputs from a group of joined inputs and returns the handle. The parameter origin can be used to choose
which input to detach (use GGI_EV_ORIGIN_NONE to match any input.) The detached handle is returned in newhand. Note, though, that if the
detached input is the same one given in inp, then the handle returned in newhand will be that of the rest of the joined inputs instead.
You can tell whether this happened by checking the return code. Events queued in the joined input for the newly split input are not trans-
ferred automatically. You must drain them out yourself. The parameter flags is reserved for future use and should be set to 0.
giiClose releases and destroys an open input and its associated internal control structures. This will put back input streams to their
default modes, etc.
Important: If you want to handle input while also using LibGGI, using LibGII functions such as giiOpen is almost certainly not what
you want. Use LibGGI functions such as ggiEventRead(3) with the LibGGI visual instead.
RETURN VALUE
giiOpen and giiJoinInputs return the opened or joined input, or NULL for error. The gii_input_t type is opaque to the programmer and can
only be used through GII functions.
giiClose returns GGI_OK (== 0) on success, otherwise an gii-error(3) code.
giiSplitInputs returns 0 for normal success, or 1 if the input which was split off was the same as the one passed in inp (in which case,
newhand may contain a handle to a joined set of visuals.) Otherwise, it returns an gii-error(3) code.
EXAMPLES
GII input management:
gii_input_t inp, inp2, inp3;
/* Initialize the GII library. This must be called before any other
* GII function. */
if (giiInit() != 0) exit(1);
/* Open the nulldevice for testing ... */
if ((inp=giiOpen("input-null",NULL)) == NULL) {
giiExit();
exit(1);
}
/* Open stdin for testing ... */
if ((inp2=giiOpen("input-stdin",NULL)) == NULL) {
giiExit();
exit(1);
}
/* Open evdev for testing ... */
if ((inp3=giiOpen("input-linux-evdev",NULL)) == NULL) {
giiExit();
exit(1);
}
/* Now join them. Note the usage of _i_n_p_=_giiJoin(inp,inp2);
* This is the recommended way to do this. */
inp=giiJoinInputs(inp,inp2);
/* Note that this mends inp2 into inp. That is you may not call
giiClose(inp2) - this happens together with giiClose(inp) ! */
/* Join another */
inp=giiJoinInputs(inp,inp3);
/* ... do the real work here ... */
/* Split one of them back out of the join. */
res = ggiSplitInputs(inp, &inp2, GII_EV_ORIGIN_NONE, 0);
if (res == 1) {
gii_input_t tmp;
tmp = imp2;
imp2 = imp1;
imp1 = tmp;
}
else if (res < 0) fprintf(stderr, "Failed to split inputs
");
/* Close the single input */
giiClose(inp2);
/* Close the joined input */
giiClose(inp);
/* Now close down LibGII. */
giiExit();
SEE ALSO
giiInit(3)
libgii-1.0.x 2006-12-30 giiOpen(3)