10-10-2012
If you want a command to terminate after some output has been detected ...
If the command will continue to generate output after the match is found, and if the wait time (could be a fraction of a second, could be weeks) until the command next attempts to write data to a pipe is acceptable, then a simple filter (awk, sed, etc...), which exits immediately after finding the match, could be sufficient. When the command next attempts to write to the pipe, since the filter that was on the other end is now gone, it will be sent a SIGPIPE (default response to this signal is program termination).
If the command to be killed does not write to the pipe regularly, then you need to send it a signal yourself when the match is detected. For this, you need to know the PID of that command.
Regards,
Alister
10 More Discussions You Might Find Interesting
1. Programming
hi all
how to terminate command eecution process.
can you please show me the way
thank you (2 Replies)
Discussion started by: munna_dude
2 Replies
2. UNIX for Dummies Questions & Answers
Hi folks,
Please advise which command/command line shall I run;
1) to display the command and its output on console
2) simultaneous to save the command and its output on a file
I tried tee command as follows;
$ ps aux | grep mysql | tee /path/to/output.txt
It displayed the... (7 Replies)
Discussion started by: satimis
7 Replies
3. Shell Programming and Scripting
How can I grep exactly a string that has .,/ characters using grep?
Example: I want to grep ONLY string1 and not string1.more or string1.more.evenmore
#lsauth ALL|grep 'string1'
All output:
string1 <--- This is the only I want.
string1.more
string1.evenmore.
more.string1... (4 Replies)
Discussion started by: iga3725
4 Replies
4. Shell Programming and Scripting
Hi,
I have written a shell script which is a combination of 5 scripts into one.
We have a Record Claim indicator in the scpt ($rc) with which we can come to an conclusion if the script failed to load the data or if the data loaded successfully.
Can any one please help me as to how to... (16 Replies)
Discussion started by: msrahman
16 Replies
5. Shell Programming and Scripting
I'm working on a script to make backup of various folder located on various host using different OS.
I got a strange behaviour because the script donět process all lines of a configuration file, the script execute only one loop even the input file have 6 lines:
This is the script:
#!/bin/bash... (4 Replies)
Discussion started by: |UVI|
4 Replies
6. Shell Programming and Scripting
This has been bothering me for 3 days.
$> hostname
cepsun64amd
And I just want "cepsun",
I would normally do h=`hostname`; ${h%%64*}
But I am looking for a one-liner just for my own knowledge, because if there is a way to do this, I should know it by now.
Anyway, so is this... (2 Replies)
Discussion started by: Ryan.
2 Replies
7. Shell Programming and Scripting
I am running the export command within a view to use that value inside my build script. But while executing it it is saying "export command not found"
My code is as follows:
--------------------------
#!/bin/sh
user="test"
DIR="/bldtmp/"$user
VIEW="test.view1"
echo "TMPDIR before export... (4 Replies)
Discussion started by: dchoudhury
4 Replies
8. Shell Programming and Scripting
Hi All,
I have a file with name
Is there a LINUX command that will help me to output the word after the 9th Underscore(_).
ie the output should be DLY in this case.
Can anybody pls help me.
Thanks much in advance,
Freddie (4 Replies)
Discussion started by: dsfreddie
4 Replies
9. Shell Programming and Scripting
below is the output xml string from some other command and i will be parsing it using awk
cat /tmp/alerts.xml
<Alert id="10102" name="APP-DS-ds_ha-140018-componentFailure-S" alertDefinitionId="13982" resourceId="11427" ctime="1359453507621" fixed="false" reason="If Event/Log Level(ANY) and... (2 Replies)
Discussion started by: vivek d r
2 Replies
10. Shell Programming and Scripting
I am using UNIX to create a script on our system. I have setup my commands to append their output to an outage file. However, some of the commands return no output and so I would like something to take their place.
What I need
The following command is placed at the prompt:
TICLI... (4 Replies)
Discussion started by: jbrass
4 Replies
PIPE(2) BSD System Calls Manual PIPE(2)
NAME
pipe -- create descriptor pair for interprocess communication
LIBRARY
Standard C Library (libc, -lc)
SYNOPSIS
#include <unistd.h>
int
pipe(int fildes[2]);
int
pipe2(int fildes[2], int flags);
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.
The pipe2() function behaves exactly like pipe() only it allows extra flags to be set on the returned file descriptor. The following flags
are valid:
O_CLOEXEC Set the ``close-on-exec'' property.
O_NONBLOCK Sets non-blocking I/O.
O_NOSIGPIPE
Return EPIPE instead of raising SIGPIPE.
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() and pipe2() calls will fail if:
[EFAULT] The fildes buffer is in an invalid area of the process's address space. The reliable detection of this error cannot be
guaranteed; when not detected, a signal may be delivered to the process, indicating an address violation.
[EMFILE] Too many descriptors are active.
[ENFILE] The system file table is full.
pipe2() will also fail if:
[EINVAL] flags is other than O_NONBLOCK or O_CLOEXEC.
SEE ALSO
sh(1), fork(2), read(2), socketpair(2), write(2)
STANDARDS
The pipe() function conforms to ISO/IEC 9945-1:1990 (``POSIX.1'').
HISTORY
A pipe() function call appeared in Version 6 AT&T UNIX. The pipe2() function is inspired from Linux and appeared in NetBSD 6.0.
BSD
January 23, 2012 BSD