- Difference between
typesetanddeclare:
The former is more portable(e.g. ksh), while the latter is more preferable when portability is not a concern.
- Difference between
declare(ortypeset) andlocalwhen used inside a function:
The former implies the latter, but more powerful. For example, declare -i x makes x have the integer attribute, declare -r x makes x readonly, etc.