[ET Trac] [Einstein Toolkit] #68: GetComponents hang due to certificate issues.
Einstein Toolkit
trac-noreply at einsteintoolkit.org
Thu Oct 25 19:32:52 CDT 2012
#68: GetComponents hang due to certificate issues.
---------------------------------+------------------------------------------
Reporter: diener@… | Owner: eric9
Type: defect | Status: reopened
Priority: major | Milestone: ET_2012_11
Component: GetComponents | Version: ET_2011_10
Resolution: | Keywords:
---------------------------------+------------------------------------------
Comment (by knarf):
We cannot rely on bash being the shell. What about the following, taken
from
http://www.unix.com/shell-programming-scripting/92163-command-does-not-
return-exit-status-due-tee.html
{{{
You can use this function to make it easier:
run() {
j=1
while eval "\${pipestatus_$j+:} false"; do
unset pipestatus_$j
j=$(($j+1))
done
j=1 com= k=1 l=
for a; do
if [ "x$a" = 'x|' ]; then
com="$com { $l "'3>&-
echo "pipestatus_'$j'=$?" >&3
} 4>&- |'
j=$(($j+1)) l=
else
l="$l \"\$$k\""
fi
k=$(($k+1))
done
com="$com $l"' 3>&- >&4 4>&-
echo "pipestatus_'$j'=$?"'
exec 4>&1
eval "$(exec 3>&1; eval "$com")"
exec 4>&-
j=1
while eval "\${pipestatus_$j+:} false"; do
eval "[ \$pipestatus_$j -eq 0 ]" || return 1
j=$(($j+1))
done
return 0
}
use it as:
run cmd1 \| cmd2 \| cmd3
exit codes are in $pipestatus_1, $pipestatus_2, $pipestatus_3
}}}
--
Ticket URL: <https://trac.einsteintoolkit.org/ticket/68#comment:12>
Einstein Toolkit <http://einsteintoolkit.org>
The Einstein Toolkit
More information about the Trac
mailing list