↳
In-reply-to
»
I love shell scripts because they’re so pragmatic and often allow me to get jobs done really quickly.
⤋ Read More
@falsifian@www.falsifian.org Exactly! 🥳
So this works:
$ bash -c 'set -u; bar=1; foo=$bar; if [[ "foo" -eq "bar" ]]; then echo it matches; fi'
it matches
Without the misleading quotes:
$ bash -c 'set -u; bar=1; foo=$bar; if [[ foo -eq bar ]]; then echo it matches; fi'
it matches
As does this:
$ bash -c 'set -u; bar=1; foo=$bar; if (( foo == bar )); then echo it matches; fi'
it matches
What the person originally meant was what bender said:
$ bash -c 'set -u; foo=bar; if [[ "$foo" = "bar" ]]; then echo it matches; fi'
it matches
It’s all rather easy once you’ve understood it … but the initial error message of the initial version can be quite unexpected.