1 |
On Saturday 21 February 2009 19:00:19 Mart Raudsepp wrote: |
2 |
> On Sat, 2009-02-21 at 18:55 -0500, Mike Frysinger wrote: |
3 |
> > On Saturday 21 February 2009 18:38:55 Ryan Hill wrote: |
4 |
> > > On Sat, 21 Feb 2009 18:27:10 -0500 Mike Frysinger wrote: |
5 |
> > > > looks like bash-4.0 has broken semicolon escaping in subshells. this |
6 |
> > > > comes up when using find's -exec like we do in a few places in |
7 |
> > > > eclasses: ls=$(find "$1" -name '*.po' -exec basename {} .po \;); |
8 |
> > > > shift you can work around the issue in a couple of ways: |
9 |
> > > > - quote the semicolon: |
10 |
> > > > .... ';') |
11 |
> > > > - use backticks |
12 |
> > > > `find .... \;` |
13 |
> > > > |
14 |
> > > > i'll tweak the eclasses to use quoting for now |
15 |
> > > |
16 |
> > > is this a bug or broken on purpose? |
17 |
> > |
18 |
> > i say it's a bug, but i'm not the bash maintainer |
19 |
> > |
20 |
> > i imagine it's fall out from attempts to fix support for case statements |
21 |
> > in subshells |
22 |
> |
23 |
> Then the bug should be fixed, instead of changing usage to something |
24 |
> apparently less common, as the conversion could miss some. And more |
25 |
> importantly users still want to use \; for find -exec ending on their |
26 |
> command line and their very own scripts. |
27 |
> And who knows how many shell scripts shipped by packages use the |
28 |
> escaping method. |
29 |
|
30 |
i think you missed the entire point of this thread: there's a bug in bash-4.0 |
31 |
that code is likely to hit. |
32 |
-mike |