Meg tudja valaki magyarázni a deklarálás és a betűkészlet közötti különbségeket a valós példákkal.
Válasz
In bash, typeset és declare pontosan ugyanazok. Az egyetlen különbség az, hogy a typeset elavultnak tekinthető.
typeset: typeset [-aAfFgilrtux] [-p] name[=value] ... Set variable values and attributes. Obsolete. See `help declare".
A man oldal még ugyanazon leheleten sorolja fel őket:
declare [-aAfFgilrtux] [-p] [name[=value] ...] typeset [-aAfFgilrtux] [-p] [name[=value] ...] Declare variables and/or give them attributes.
typeset néhány más héjba hordozható, például ksh93. Ha a héjokon átívelő hordozhatóságra törekszik, használja a typeset parancsot (és ellenőrizze, hogy hordozható-e). Ha nem érdekli az ilyen hordozhatóság, használja a következőt: declare.
Megjegyzések
Válasz
Ismerek olyan esetet, amikor a declare hasznos a gonosz eval: változó indirekció elkerülésére. :
$ var=foo $ x=var $ declare "$x=another_value" $ echo $var another_value
Hozzászólások
- Ez egy jó megjegyzés, de hogyan válaszolja meg ez a kérdés ab ki
typesetésdeclare? - Erre már Chris Down is jól válaszolt, válaszom csak egy eset, amikor ez ' hasznos
- Talán nem voltam tisztázva A megjegyzéseknek megjegyzésnek, a válaszoknak pedig válaszoknak kell lenniük. Ez egy megjegyzés, nem válasz.
- A kódrészletem nem törölhető ' egy megjegyzésből
- de változókat továbbra is hozzárendelhet typet … csak cserélje ki a deklarálást a typeet-re, és továbbra is ugyanazt az eredményt kapja.
help typeset, nem aman typesetfájlban.typesettekinthető elavultnak?