Alguém pode explicar a diferença entre declarar e escrever com exemplos da vida real.
Alguém pode explicar a diferença entre declarar e escrever com exemplos da vida real.
Respostas:
Em bash
, typeset
e declare
são exatamente os mesmos. A única diferença é que typeset
é considerado obsoleto.
typeset: typeset [-aAfFgilrtux] [-p] name[=value] ...
Set variable values and attributes.
Obsolete. See `help declare'.
A página de manual ainda os lista na mesma respiração:
declare [-aAfFgilrtux] [-p] [name[=value] ...]
typeset [-aAfFgilrtux] [-p] [name[=value] ...]
Declare variables and/or give them attributes.
typeset
é portátil para outras conchas, por exemplo ksh93
,. Se você deseja portabilidade entre shell, use typeset
(e verifique se a maneira como a chama) é portátil. Se você não se importa com essa portabilidade, use declare
.
help typeset
, não em man typeset
.
typeset
é considerado obsoleto?
Conheço um caso em que declare
é útil evitar o mal eval
: indireção variável :
$ var=foo
$ x=var
$ declare "$x=another_value"
$ echo $var
another_value
typeset
e declare
?