Everyone knows that "regular" Bash variables are just strings. Bash doesn't really know about integers or other numeric types. Right?
Not really. You can "declare" an integer variable like this:
declare -i foo
foo into an integer type variable! Here's a more concrete example,
showing what an integer type actually does:
# declare our variable as an integer type declare -i foo # assign 2 to foo and print it foo=2 echo $foo # prints 2 # what happens when we assign a string? foo="hello, world" echo $foo # prints 0!
As you can see, once
foo is declared as an integer variable it can no longer
be coerced to a string type. There are other nifty things you can do with
declare, such as the usage of
declare -r for "readonly" variables. And more
options are in
Bash scripting is notoriously difficult to get right. If you take the time to
declare feature it can help you keep your Bash scripts readable and