Qualcuno può spiegare la differenza tra dichiarare e comporre con esempi di vita reale.
Qualcuno può spiegare la differenza tra dichiarare e comporre con esempi di vita reale.
Risposte:
In bash
, typeset
e declare
sono esattamente gli stessi. L'unica differenza è che typeset
è considerato obsoleto.
typeset: typeset [-aAfFgilrtux] [-p] name[=value] ...
Set variable values and attributes.
Obsolete. See `help declare'.
La pagina man li elenca anche nello stesso respiro:
declare [-aAfFgilrtux] [-p] [name[=value] ...]
typeset [-aAfFgilrtux] [-p] [name[=value] ...]
Declare variables and/or give them attributes.
typeset
è portatile per alcune altre shell, ad esempio ksh93
. Se stai mirando alla portabilità cross-shell, usa typeset
(e assicurati che il modo in cui lo chiami sia portatile). Se non ti interessa tale portabilità, usa declare
.
help typeset
, non in man typeset
.
typeset
è considerato obsoleto?
Conosco un caso in cui declare
è utile evitare il male eval
: indiretta variabile :
$ var=foo
$ x=var
$ declare "$x=another_value"
$ echo $var
another_value
typeset
e declare
?