Re: process substitution not correctly parsed inside variable expansion

2017-03-18 Thread Chet Ramey
On 3/17/17 11:30 AM, D630 wrote:
> There is a parse error in B:

Thanks for the report.  I'll take a look.

Chet

-- 
``The lyf so short, the craft so long to lerne.'' - Chaucer
 ``Ars longa, vita brevis'' - Hippocrates
Chet Ramey, UTech, CWRUc...@case.eduhttp://cnswww.cns.cwru.edu/~chet/



process substitution not correctly parsed inside variable expansion

2017-03-17 Thread D630

There is a parse error in B:

# A

bash$ p=; : "${p:=>(f()(echo "$@") ;f foo)}"; declare -p p
declare -- p=">(f()(echo ) ;f foo)"

bash$ p=; : ${p:=>(f()(echo "$@") ;f foo)}; declare -p p
declare -- p="/dev/fd/63"
foo

bash$ p=; echo "${p:=>(f()(echo "$@") ;f foo)}"

(f()(echo ) ;f foo)



# B

bash$ p=; : "${p:=>(f() { echo "$@"; };f foo)}"; declare -p p
declare -- p=">(f() { echo ; "

bash$ p=; : ${p:=>(f() { echo "$@"; };f foo)}; declare -p p
bash: syntax error near unexpected token `)'

bash$ p=; echo "${p:=>(f() { echo "$@"; };f foo)}"

(f() { echo ; ;f foo)}