Чи може хтось пояснити різницю між заявою та набором даних із прикладами реального життя.
Чи може хтось пояснити різницю між заявою та набором даних із прикладами реального життя.
Відповіді:
В 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?