I think the following is a bug, but I'm not really sure. I've checked the
documentation for differences between old-style command substitution (
`...` ) and new-style ( $(...) ), and couldn't see anything that related to
this problem.

*Background*

At my place of work, I use some loops with variables to generate a lot of
aliases and functions. Our employees use these to modify variables,
including their PATH, to change their environment for testing different
versions of our Cobol products. When I made a recent change, some of the
PATH modifications stopped working. (Before diving in to investigate the
issue, I changed the aliases to functions to get things working again.)

*Test Case*

I have created a much simpler set of test aliases and functions to
illustrate the issue and I have to admit it's a bit obscure.

If I "source" the attached file (i.e. ". test_aliases") in a bash session,
then run the following:

assemble_fam1
assemble_fam2
say_families

I see the following output:

Flintstones=wilma:bam-bam:fred
Rubbles=barney

I think I should be seeing this output:

Flintstones=wilma:bam-bam:fred
Rubbles=betty:pebbles:barney

Interestingly, if I run the function 'run_aliases' to run the assemble_famX
aliases, then it all works fine.

Another change that also makes the assemble_fam2 alias work properly (apart
from using backticks) is to write the assemble_fam2 alias on one line as:

alias assemble_fam2="barney; RUBBLES=betty:pebbles:\$RUBBLES"

Hopefully, you can use this information to see if there is a problem.

Cheers,
Geoff

Attachment: test_aliases
Description: Binary data

Reply via email to