12-28-2009
Quote:
Still don't understand why it does not work with the pipe
It seems you are conflating pipes and command line options. They are unrelated concepts.
A pipe redirects the standard output of one command into the standard input of another. To read what is being sent in via a pipe, a process has to read from standard input using file i/o.
Command line options are usually made available to a program/script through an array (argv for C executables) or special variables ($*, $@, $1, $2, etc) for shell scripts. getopt (a function in the C library and a command for shell script use) is used to process the command line options.
These are two different mechanisms for passing information. If you want to pass what is in param2 in via a pipe, myscript.sh would have to read it from its stdin. However, it's probably using the variable $2 as it expects it on the command line.
Hopefully that helps clear it up. If not, perhaps it's a start.
Take care,
alister
10 More Discussions You Might Find Interesting
1. Shell Programming and Scripting
not required this time (6 Replies)
Discussion started by: Sandeep_Malik
6 Replies
2. Shell Programming and Scripting
i have a file (kk.log) in which following contents are there:
=====================================
Enter:YOU HAVE ENTERED : a
TestCase: TC1226677371 IS PASSED
2009-02-25 13:57:33.444 INFO com.t.t.exporterporter - Initialising Xml Exporter....
2009-02-25 13:57:33.445 INFO ... (2 Replies)
Discussion started by: Aditya.Gurgaon
2 Replies
3. Shell Programming and Scripting
Hi,
i am new to awk. I am using csv2pipe script(shown below)
BEGIN { FS=SUBSEP; OFS="|" }
{
result = setcsv($0, ",")
print
}
# setcsv(str, sep) - parse CSV (MS specification) input
# str, the string to be parsed. (Most likely $0.)
# sep, the separator between the values.
#
#... (6 Replies)
Discussion started by: bhaskarjha178
6 Replies
4. Programming
Dear All:
I am trying to do something that (I thought) was relatively straightforward, but my code snippet does not seem to work.
Any suggestions?
Thank you
Sincerely yours
Misha Koshelev
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <errno.h>
#include... (0 Replies)
Discussion started by: misha680
0 Replies
5. UNIX for Advanced & Expert Users
Hi All,
Sorry if the title is not good but I did not know how to explain with only some words!
What I meant is: I have a unix command built from a private application vendor that when executed it prompts for two entries by the keyboard, let's say, for example:
... (1 Reply)
Discussion started by: felipe.vinturin
1 Replies
6. Shell Programming and Scripting
Below script perfectly works, giving below mail output. BUT, I want to make the script mail only if there are any D-Defined/T-Transition/B-Broken State WPARs and also to copy the output generated during monitoring to a temporary log file, which gets cleaned up every week. Need suggestions.
... (4 Replies)
Discussion started by: aix_admin_007
4 Replies
7. Shell Programming and Scripting
Hi,
I search for a string "can be any" and print the fields $4,$6 in to variables.
$ cat input
<value ='can be any' string='many' version='123'/>
<value ='xyz' string='less' version='456'/>
$ cat tried_code
SRG=`awk -F\' '{ print $4 }' input`
VER=`awk -F\' '{ print $6 }' input`
... (4 Replies)
Discussion started by: greet_sed
4 Replies
8. Shell Programming and Scripting
Hi Guys,
I want to redirect the output of 3 scripts to a file and then mail the output of those three scripts.
I used below but it is not working:
OFILE=/home/home1/report1
echo "report1 details" > $OFILE
=/home/home1/1.sh > $OFILE
echo... (7 Replies)
Discussion started by: Vivekit82
7 Replies
9. Shell Programming and Scripting
Hi,
I need to redirect the output of the file until the first instance of a string is found.
So in the filename output.txt i was to redirect everything from the start to where i find this string "BEA-000377" is found to a new file called output_new.txt
Sample output.txt
the controller... (1 Reply)
Discussion started by: mohtashims
1 Replies
10. UNIX for Dummies Questions & Answers
Hi,
I want to compare a value from test file and redirect the o/p value to the same file
input file
250 32000 32 128
Below is my code
awk '{ if ($1 < "300") print $1 > /tmp/test}' test
want to compare 250 < 300 then print 300 to the same place
below is the... (24 Replies)
Discussion started by: stew
24 Replies
LEARN ABOUT OPENDARWIN
pipe
PIPE(2) BSD System Calls Manual PIPE(2)
NAME
pipe -- create descriptor pair for interprocess communication
SYNOPSIS
#include <unistd.h>
int
pipe(int *fildes);
DESCRIPTION
The pipe() function creates a pipe, which is an object allowing unidirectional data flow, and allocates a pair of file descriptors. The
first descriptor connects to the read end of the pipe, and the second connects to the write end, so that data written to fildes[1] appears on
(i.e., can be read from) fildes[0]. This allows the output of one program to be sent to another program: the source's standard output is set
up to be the write end of the pipe, and the sink's standard input is set up to be the read end of the pipe. The pipe itself persists until
all its associated descriptors are closed.
A pipe whose read or write end has been closed is considered widowed. Writing on such a pipe causes the writing process to receive a SIGPIPE
signal. Widowing a pipe is the only way to deliver end-of-file to a reader: after the reader consumes any buffered data, reading a widowed
pipe returns a zero count.
RETURN VALUES
On successful creation of the pipe, zero is returned. Otherwise, a value of -1 is returned and the variable errno set to indicate the error.
ERRORS
The pipe() call will fail if:
[EMFILE] Too many descriptors are active.
[ENFILE] The system file table is full.
[EFAULT] The fildes buffer is in an invalid area of the process's address space.
SEE ALSO
sh(1), read(2), write(2), fork(2), socketpair(2)
HISTORY
A pipe() function call appeared in Version 6 AT&T UNIX.
4th Berkeley Distribution June 4, 1993 4th Berkeley Distribution