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, typesete declaresono 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
typesete declare?