On Sat, Oct 01, 2016 at 12:44:36AM +0200, Lars Kruse wrote: > Am Fri, 30 Sep 2016 22:02:27 +0200 schrieb Jan-Tarek Butt <ta...@ring0.de>: > > > --- > > scripts/deptest.sh | 8 ++++---- > > 1 file changed, 4 insertions(+), 4 deletions(-) > > > > diff --git a/scripts/deptest.sh b/scripts/deptest.sh > > index 8c859ef..0b0e7a9 100755 > > --- a/scripts/deptest.sh > > +++ b/scripts/deptest.sh > > @@ -86,9 +86,9 @@ test_package() # $1=pkgname > > [ -n "$pkg" -a -z "$(echo "$pkg" | grep -e '/')" -a "$pkg" != "." -a > > "$pkg" != ".." ] || \ die "Package name \"$pkg\" contains illegal > > characters" > > local SELECTED= > > - for conf in $(grep CONFIG_PACKAGE tmp/.packagedeps | grep -E "[ > > /]$pkg\$" | sed -e 's,package-$(\(CONFIG_PACKAGE_.*\)).*,\1,'); do > > + while IFS= read -r conf; do > > grep "$conf=" .config > /dev/null && SELECTED=1 && break > > - done > > + done < "$(grep CONFIG_PACKAGE tmp/.packagedeps | grep -E "[ /]$pkg\$" | > > sed -e 's,package-$(\(CONFIG_PACKAGE_.*\)).*,\1,')" > > Is this really doing what it looks like? > ... < "$(command)" > This should try to read from a file named like the output of "command" - and > not the lines of command's output. > > I guess, the following approach should do the right thing: > > grep CONFIG_PACKAGE tmp/.packagedeps | grep -E > "[ /]$pkg\$" | sed -e > 's,package-$(\(CONFIG_PACKAGE_.*\)).*,\1,') | while IFS= read -r conf; do > ... > done > this won't work, because it makes the loop body a subshell, and thus the assignment of SELECTED will get lost.
to achieve the goal with minimal effort, adding local IFS=$'\n' prior to the loop should be sufficient. ps: please configure your mailer to not wrap quotes. _______________________________________________ Lede-dev mailing list Lede-dev@lists.infradead.org http://lists.infradead.org/mailman/listinfo/lede-dev