Может ли кто-нибудь объяснить разницу между объявлениями и наборами на реальных примерах.
22
В bash
, typeset
и declare
точно так же. Разница лишь в том, что typeset
считается устаревшим.
typeset: typeset [-aAfFgilrtux] [-p] name[=value] ...
Set variable values and attributes.
Obsolete. See `help declare'.
Страница man даже перечисляет их на одном дыхании:
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
: переменная косвенность :источник
typeset
иdeclare
?