Test your square brackets
fluca1978.github.io
Test your square brackets
1–10 of 68 posts
Re: Test your square brackets
#2I'm still not sure when to use one or the other. I use double brackets by default until something doesn't work.
Re: Test your square brackets
#3In a corner with no where to go, giving demerits because his bash was older than he realized.
Reminds me of my college professor that claimed you don’t have to close HTML tags (some you absolutely do) and I proved that you do. Not all of them, but most of them. (Netscape Navigator Days)
Re: Test your square brackets
#4The author’s professor clearly went overboard, but doesn’t this entire anecdote demonstrate the value of teaching it this way? Having green students call the `test` binary provides more insight into how UNIX operates, and gets them using a UNIX mindset. They can discover the syntactic shortcuts later.
Re: Test your square brackets
#5Now do [ ... ] and [[ ... ]] I'm still not sure when to use one or the other. I use double brackets by default until something doesn't work.
When unsure, use shellcheck.
Re: Test your square brackets
#6Re: Test your square brackets
#7Now do [ ... ] and [[ ... ]] I'm still not sure when to use one or the other. I use double brackets by default until something doesn't work.
Double brackets are less portable. For example musl linux does not come with bash by default, and your script fails. When unsure, use shellcheck.
Re: Test your square brackets
#8Now do [ ... ] and [[ ... ]] I'm still not sure when to use one or the other. I use double brackets by default until something doesn't work.
Re: Test your square brackets
#9Now do [ ... ] and [[ ... ]] I'm still not sure when to use one or the other. I use double brackets by default until something doesn't work.
Double brackets are less portable. For example musl linux does not come with bash by default, and your script fails. When unsure, use shellcheck.
Re: Test your square brackets
#10Nowadays [ is a builtin. The subprocess for a simple branch would be excessive overhead.
$ which [
/bin/[
$ type [
[ is a shell builtin
The same is true for the `test` command: $ which test
/bin/test
$ type test
test is a shell builtin