Skip to content

Conversation

@vhulagov
Copy link

Hello. =)
~$ bash -exc 'libs="abc,foo,bar"; for lib in ${libs//,/ }; do echo $lib; done'
~+ libs=abc,foo,bar
~+ for lib in '${libs//,/ }'
~+ echo abc
abc
~+ for lib in '${libs//,/ }'
~+ echo foo
foo
~+ for lib in '${libs//,/ }'
~+ echo bar
bar
~$ dash -exc 'libs="abc,foo,bar"; for lib in ${libs//,/ }; do echo $lib; done'
~+ libs=abc,foo,bar
dash: 1: Bad substitution
~~$ sh -exc 'libs="abc,foo,bar"; for lib in ${libs//,/ }; do echo $lib; done'
~+ libs=abc,foo,bar
sh: 1: Bad substitution

@ncopa
Copy link
Owner

ncopa commented Mar 18, 2015

What do you think about something like this? The difference is that it avoids a couple of forks so it should be slightly faster when you have many files.

@@ -216,7 +216,12 @@ show_elf() {
                allhits="${allhits},${interp},${libs}"
        fi

-       for lib in ${libs//,/ } ; do
+       oifs="$IFS"
+       IFS=,
+       set -- ${libs}
+       IFS="$oifs"
+
+       for lib; do
                lib=${lib##*/}
                case ",${my_allhits}," in
                        *,${lib},*) continue;;

@ncopa ncopa closed this in 10fa89c Apr 21, 2015
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants