evgeny <[email protected]> writes:
> expecting success:
> OUT=$( ((large_git; echo $? 1>&3) | :) 3>&1 ) &&
> test "$OUT" -eq 141
>
> t0005-signals.sh[499]: eval: syntax error at line 4: `(' unmatched
> Memory fault
Does this work if you did
OUT=$( ( (large_git ; echo $? 1>&3) | : ) 3>&2 ) &&
instead?
> 'man ksh' reads:
> (list)
> Execute list in a separate environment.
> Note, that if two adjacent open parentheses are needed for nesting,
> a space must be inserted to avoid evaluation as an arithmetic command as
> described above.
Hmm, I cannot see "as described above" in your message, but isn't
that talking about a common mistake of turning cmd1 in this pipeline
x=$(cmd1 | cmd2)
into a series of two commands, e.g. (cmd1a && cmd1b) and saying
x=$((cmd1a && cmd1b) | cmd2)
which does make "$((" interpreted as the beginning of arithmetic
expansion?
And the "OUT=$( ((large..." construct seems to be written in order
to avoid that exact issue (notice the SP after "$(").
Puzzled....
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html