The only time a variable appears "naked" -- without the $prefix -- is when declared or assigned, when unset, when exported, or in the special case of a variable representing a signal.
Double quotes ("...") does not interfere with variable substitution.
Single quotes('...') causes the variable name to be used literally, and no substitution will take place.
$variable is actually a simplified form of ${variable}
An uninitialized variable has a "null" value. (In mathmetic , it is 0)
= can be either an assignment or a test operator, depending on context.
$(...) mechanism: arch =$(uname -m)
Bash variables are character string, but depending on context, Bash permits integer operations and comparisons on variable. The determining factor is whether the value of a variable contains only digits.
An script can export variables only to child processes.
Positional parameter: arguments passed to the script from the command line. $0, $1, $2 ... ${10}, ${11}
$0 is the name of the script itself. $1 is the first argument.
$* and $@ denote all the positional parameters.