Advanced test using [[

The use of the double brackets [[ condition ]] allows us to do more advanced condition testing but is not compatible with the Bourne Shell. The double brackets were first introduced as a defined keyword in the korn shell and are also available in bash and zsh. Unlike the single bracket, this is not a command but a keyword. The use of the type command can confirm this:

$ type [[

Whitespace

The fact that [[ is not a command is significant where whitespace is concerned. As a keyword, [[ parses its arguments before bash expands them. As such, a single parameter will always be represented as a single argument. Even though it goes against best practice, [[ can alleviate some of the issues associated with whitespace within parameter ...

Get Mastering Linux Shell Scripting now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.