| Form | Meaning |
| var=value | Set each variable var to a value |
| ${var} | Use value of var |
| ${var:-value} | Use var if set; otherwise, use value |
| ${var:=value} | Use var if set; otherwise, use value and assign
value to var |
| ${var:=value} | Use var if set; otherwise, use value and assign
value to var |
| ${#var} | Use the length of var |
| ${#*} | Use the number of positional parameters |
| ${#@} | Use the number of positional parameters |
| ${var:pos} | Starting at position pos (0-based) in variable |
| ${var:pos:len} | var, extract len characters, or extract rest of string |
| ${var/pat/repl} | Use value of var, with first match of pat replaced with repl |
| ${var/pat} | Use value of var, with first match of pat deleted |
| ${var/pat/repl} | Use value of var, with first match of pat replaced with repl |
prompt> var1=apple var2=banana
prompt> echo ${var1} ${var2}
apple banana
prompt> echo ${var1:-none} ${var3:-none}
apple none
prompt> echo ${var3}
prompt> echo ${var3:=computer}
computer
prompt> echo ${var3}
computer
prompt> echo ${#var3}
8
prompt> cat test.sh
echo ${#*}
echo ${#@}
prompt> ./test.sh a b c d
4
4
prompt> echo ${var3:3}
puter
prompt> echo ${var3:3:2}
pu
prompt> echo ${var3/com/moc}
mocputer
prompt> echo ${var3/com}
puter
prompt> var4=apple1apple2apple3
prompt> echo ${var4/apple/banana}
banana1apple2apple3
prompt> echo ${var4//apple/banana}
banana1banana2banana3