[lfs-support] Possible Syntax Error in Current "Package User" Hint Build Script

Pierre Labastie pierre.labastie at neuf.fr
Sat Oct 12 09:56:47 PDT 2013

Le 12/10/2013 18:27, Dan McGhee a écrit :
> I'm melding my build script to the current one from this hint.  I've 
> found a possible syntax error and want to see if my thinking is 
> correct.  Since I've been monitoring this list closely again, i.e.; the 
> last three weeks, I've not seen anyone who has had a problem running 
> this script.  But I think that few people build this way. :)
> Here is the line in question:
> cd "$HOME/xxxbuild/yyysrc" && srcdir="$(pwd)" || exit 1
> This patter occurs a number of times in the script and, therefore, I 
> think it's important.  For this question the references to what actually 
> exist are not relevant.  It's only the syntax.  In attempting to 
> understand what this statement is doing, I've come up with this plain 
> language interpretation.
> "Change to the package build directory IF AND ONLY IF the package source 
> directory is the same as the current directory OR exit with a status of 1."
> In typing this I've also generated a question about the "'s, but it's 
> the use of the logical operators, which I've capitalized, that has my 
> attention.  Here's the question:
> If <&&> and <||> are logical operators, shouldn't the whole command be 
> enclosed in double brackets,
> [[ command1 && command2 || command3 ]]? The other syntax I know would be
> [ command1 -a command2 -o command3 ].
> Of course, this is all predicated on the use of <&&> and <||> as logical 
> operators.  But if they're not, I don't understand the command.
> Comments? Answers? Recommendations? Rants?
> Thanks,
> Dan

Well, dunno if this is rant, recommandation or comment, but you should have a look
at the paragraph about "Lists" in the bash manpage.
It's all explained there, much better than I would.

But now a rough answer: the meaning of this line is:
change directory to ${HOME}/blah. If that succeeds, set the srcdir variable to the
full path to that directory. If either of the preceding commands fails then exit with error code.


More information about the lfs-support mailing list