On Tuesday 24 July 2007 07:56, Dan Nicholson wrote:
...
> and
> noticed some && in chained commands. It seems that usual way in LFS is
> not to do this.

Curious; is this just a style preference?


I notice in Chapter 5 Adjusting the Toolchain:
-----
GCC_INCLUDEDIR=`dirname $(gcc -print-libgcc-file-name)`/include &&
find ${GCC_INCLUDEDIR}/* -maxdepth 0 -xtype d -exec rm -rvf '{}' \; &&
rm -vf `grep -l "DO NOT EDIT THIS FILE" ${GCC_INCLUDEDIR}/*` &&
unset GCC_INCLUDEDIR
-----

And it could be replaced a bunch of ways:
1.
-----
( GCC_INCLUDEDIR=`dirname $(gcc -print-libgcc-file-name)`/include &&
find ${GCC_INCLUDEDIR}/* -maxdepth 0 -xtype d -exec rm -rvf '{}' \; &&
rm -vf `grep -l "DO NOT EDIT THIS FILE" ${GCC_INCLUDEDIR}/*`; )
-----
This one would ensure that GCC_INCLUDE is unset in the event of a failure, 
probably not a big deal.


Or, if a subshell is to be avoided:
2.
-----
GCC_INCLUDEDIR=`dirname $(gcc -print-libgcc-file-name)`/include &&
find ${GCC_INCLUDEDIR}/* -maxdepth 0 -xtype d -exec rm -rvf '{}' \; &&
rm -vf `grep -l "DO NOT EDIT THIS FILE" ${GCC_INCLUDEDIR}/*` &&
unset GCC_INCLUDEDIR ||
unset GCC_INCLUDE
-----

3.
-----
Or, maybe just strip the '&&'s right out of there; I'm not sure how other 
browsers and consoles work, but with my combo a cut and paste without the && 
works just fine I just have to hit enter for the last command; this also 
keeps the screen output tied to the commands.

4.
-----
And finally, if there is no intention to use the '&&' as a control character 
replace it with ';' and the unset will be fine.

Personally, I like the first one best. In the even that GCC_INCLUDEDIR fails 
to set the following command won't go around trying to delete all directories 
off the root. I played; I did; luckily I was quick with the crtl-c and not 
root and only ended up deleting part of an old home directory... Now I have a 
user for playing with these things ;).


Trent.
-- 
http://linuxfromscratch.org/mailman/listinfo/lfs-dev
FAQ: http://www.linuxfromscratch.org/faq/
Unsubscribe: See the above information page

Reply via email to