06-02-2009
PIPESTATUS and autoconfigure
At the risk of sounding like a hermit (talking to myself), I recently examined some of the configure scripts and saw several patterns:
- There aren't many pipe commands after all, mostly simple sed calls
- The tricks played with redirection are for logging and/or extracting return values from simple commands used inside of subshells
So the PIPESTATUS appears to be unique in the ability to extract return values from simple pipe commands.
Quote:
Originally Posted by
qneill
But how does one do it in a shell that doesn't have PIPESTATUS? I know that autoconf (tool to install source on almost Unix that has lots of shell-independent logic in it) plays tricks with redirection and subshells to capture the return values from inner pipe commands....
10 More Discussions You Might Find Interesting
1. UNIX for Dummies Questions & Answers
I have a Korn shell script that executes a number of commands on a remote server.
Is it possible to feed in the last exit code of the rsh commands (i.e. something like $?) to a variable within the local shell script?
I tried the following:
returncode=$(rsh spns31 ".... (1 Reply)
Discussion started by: bbouch
1 Replies
2. Shell Programming and Scripting
I'm trying to do the following:
1) Run a bunch of jobs in the background
2) Determine if any one of them returns with a non-zero exit status
Here's what I've come up with so far:
##########################################
#!/bin/ksh
while } -lt 1024 ]
do
SLEEP_TIME=`expr 1024 -... (2 Replies)
Discussion started by: bergerj3
2 Replies
3. Shell Programming and Scripting
hi
i have a file, i am reading line by line and checking a line contains a string ,
`grep "Change state" $LINE`
if
then
echo "The line contains---"
else
echo "The line does not contains---"
i need to check the return code , but i am getting an error
... (4 Replies)
Discussion started by: Satyak
4 Replies
4. Shell Programming and Scripting
i have to run set of commands
command1
command2
command3
command4
Now Whenever any of these command fails i should quit while capturing error message.
Is there a better way then checking for $? after each command. (1 Reply)
Discussion started by: vickylife
1 Replies
5. UNIX for Dummies Questions & Answers
Hi,
While I am using "|" to join multiple commands, I am not getting the return code when there is error in one of the commnads.
Eg:
b=`find /path/a*.out | xargs basename`
if ; then
echo "Error"
fi
if there is error while finding the file or getting the basename, the $? is... (6 Replies)
Discussion started by: new_learner
6 Replies
6. UNIX for Dummies Questions & Answers
Hi,
I am using the korn shell on Solaris box.
Why does the following 2 commands return different results?
This command returns no results (I already used this command to create a list of files which I moved to an archive directory)
find ????10??_*.dat -type f -mtime +91
However this... (15 Replies)
Discussion started by: stumpy1
15 Replies
7. AIX
Hello,
Our AIX box has recently been upgraded to TL12 (oslevel -s = 5300-12-04-1119).
Now one of our ksh scripts is returning 1 when writing to a pipe, the command to write to the pipe is:
echo "A" "B" "C" >> /usr/Pipe.Pipe
Anyone have any ideas?
Thanks (2 Replies)
Discussion started by: dendright
2 Replies
8. Shell Programming and Scripting
I create commands within a pipe and finally want them to be executed instead of being displayed on the screen. What is the last stage in this pipe? I found by guessing that "ksh" is working, but is this the best to use here?
It boils down to this:
echo "print Hello World!"| kshWhat is the... (15 Replies)
Discussion started by: Cochise
15 Replies
9. Shell Programming and Scripting
What is the correct syntax to pipe or run three awk commands? Basically, using the output of the first awk as input in the second. Then using the output of the second awk in the third. Thank you :).
awk 'FNR==NR {E; next }$3 in E {print $3, $5}' panel_genes.txt RefSeqGene.txt > update.txt |... (3 Replies)
Discussion started by: cmccabe
3 Replies
10. Linux
Hello,
I have standard loop
while read -r info; do
command $info
done < info
in info text file I have multiple commands each on line that I want to execute. When I used them in console they worked, but not with this loop.
This is one of the commands in info file:
grep... (4 Replies)
Discussion started by: adamlevine
4 Replies
LEARN ABOUT DEBIAN
dh-exec
DH-EXEC(1) dh-exec DH-EXEC(1)
NAME
dh-exec - Debhelper executable file helpers
SYNOPSIS
#! /usr/bin/dh-exec
src/libfoo-*.so.* debian/foo-plugins/usr/lib/foo/${DEB_HOST_MULTIARCH}/
etc/example.conf => debian/foo/etc/foo/foo.conf
DESCRIPTION
dh-exec is a simple program, meant to be used as the interpreter for executable debhelper config files.
It is a wrapper around the various other sub-commands (see below), and will pipe the input file through all of them in turn, using an
ordering that makes most sense in the vast majority of cases.
The order as of now is dh-exec-subst gets run first, followed by dh-exec-install, so that variable expansion happens before files need to
be copied.
ARCHITECTURE
dh-exec is built up from three layers: there is the dh-exec utility, its single entry point, the only thing one will need to call.
Below that, there are the various sub-commands, such as dh-exec-subst, dh-exec-installs and dh-exec-illiterate, which are thin wrappers
around the various dh-exec scripts, that make sure they only run those that need to be run.
And the lowest layer are the various scripts that do the actual work.
One can control which sub-commands to run, or if even more granularity is desired, one can limit which scripts shall be run, too. See below
for the options!
OPTIONS
--with=command[,command ...]
Replace the list of sub-commands to run the input through with a custom list (where entries are separated by whitespace or commas).
This option will always replace the existing list with whatever is specified.
This can be used to explicitly set which sub-commands to use.
The list must not include the dh-exec- prefix.
Defaults to subst,install.
--without=command[,command ...]
Inversely to the option above, this lists all the sub-commands which should not be used.
The list must not include the dh-exec- prefix.
--with-scripts=script[,script ...]
Replace the list of scripts to run the input through with a custom list (where entries are separated by whitespace or commas). This
option will always replace the existing list with whatever is specified.
This can be used to explicitly specify which scripts to use, limiting even beyond what the --with option is capable of.
The list must not include the dh-exec- prefix.
By default it is empty, meaning there is no filtering done, and whatever scripts the sub-commands find, will be run.
--no-act
Do not really do anything, but print the pipeline that would have been run instead.
--list
List the available sub-commands and scripts, grouped by sub-command.
--help, --version
Display a short help or the package version, respectively.
SUB-COMMANDS
dh-exec-subst
Substitutes various variables (either from the environment, or from dpkg-architecture(1)).
dh-exec-install
An extension to dh_install(1), that supports renaming files during the copy process, using a special syntax.
ENVIRONMENT
DH_EXEC_LIBDIR
The directory in which the wrapped sub-commands reside. Defaults to /usr/lib/dh-exec/.
DH_EXEC_SCRIPTDIR
The directory in which the scripts that do the heavy work live. Defaults to /usr/share/dh-exec/.
FILES
$DH_EXEC_LIBDIR/dh-exec-*
The various sub-commands.
$DH_EXEC_SCRIPTDIR/dh-exec-*
The various scripts ran by the sub-commands.
SEE ALSO
debhelper(1), dh-exec-subst(1), dh-exec-install(1)
AUTHOR
dh-exec is copyright (C) 2011-2012 by Gergely Nagy <algernon@madhouse-project.org>.
2012-05-03 DH-EXEC(1)