Чи може хтось пояснити різницю між заявою та набором даних із прикладами реального життя.
Чи може хтось пояснити різницю між заявою та набором даних із прикладами реального життя.
Відповіді:
В bash
, typeset
і declare
точно такі ж. Різниця лише в тому, що typeset
вважається застарілим.
typeset: typeset [-aAfFgilrtux] [-p] name[=value] ...
Set variable values and attributes.
Obsolete. See `help declare'.
Сторінка людини навіть перераховує їх на одному диханні:
declare [-aAfFgilrtux] [-p] [name[=value] ...]
typeset [-aAfFgilrtux] [-p] [name[=value] ...]
Declare variables and/or give them attributes.
typeset
портативний для деяких інших оболонок, наприклад, ksh93
. Якщо ви прагнете перехресної переносності оболонки, скористайтеся typeset
(і переконайтесь, що спосіб її виклику переносить) Якщо ви не переймаєтесь такою портативністю, використовуйте declare
.
help typeset
, а не в man typeset
.
typeset
він вважається застарілим?
Я знаю випадок, коли declare
корисно уникати зла eval
: змінна непрямість :
$ var=foo
$ x=var
$ declare "$x=another_value"
$ echo $var
another_value
typeset
і declare
?