¿Alguien puede explicar la diferencia entre declarar y componer con ejemplos de la vida real?
¿Alguien puede explicar la diferencia entre declarar y componer con ejemplos de la vida real?
Respuestas:
En bash
, typeset
y declare
son exactamente lo mismo. La única diferencia es que typeset
se considera obsoleto.
typeset: typeset [-aAfFgilrtux] [-p] name[=value] ...
Set variable values and attributes.
Obsolete. See `help declare'.
La página man incluso los enumera en el mismo aliento:
declare [-aAfFgilrtux] [-p] [name[=value] ...]
typeset [-aAfFgilrtux] [-p] [name[=value] ...]
Declare variables and/or give them attributes.
typeset
es portátil a otras conchas, por ejemplo ksh93
,. Si tiene como objetivo la portabilidad cross-shell, use typeset
(y asegúrese de que la forma en que lo llama sea portátil). Si no te importa esa portabilidad, úsala declare
.
help typeset
, no en man typeset
.
typeset
se considera obsoleto?
Conozco un caso donde declare
es útil para evitar el mal eval
: indirección variable :
$ var=foo
$ x=var
$ declare "$x=another_value"
$ echo $var
another_value
typeset
y declare
?