Kan noen forklare forskjellen mellom erklære og typesett med eksempler fra virkeligheten.
Svar
I bash
, typeset
og declare
er nøyaktig det samme. Den eneste forskjellen er at typeset
regnes som foreldet.
typeset: typeset [-aAfFgilrtux] [-p] name[=value] ... Set variable values and attributes. Obsolete. See `help declare".
Mannsiden lister dem til og med i samme åndedrag:
declare [-aAfFgilrtux] [-p] [name[=value] ...] typeset [-aAfFgilrtux] [-p] [name[=value] ...] Declare variables and/or give them attributes.
typeset
er bærbar til noen andre skall, for eksempel ksh93
. Hvis du sikter på portabilitet på tvers av skall, bruk typeset
(og sørg for at måten du kaller det er bærbart). Hvis du ikke bryr deg om slik bærbarhet, bruk declare
.
Kommentarer
Svar
Jeg kjenner et tilfelle der declare
er nyttig for å unngå det onde eval
: variabel retning :
$ var=foo $ x=var $ declare "$x=another_value" $ echo $var another_value
Kommentarer
- Dette er en fin kommentar, men hvordan svarer det på spørsmålet som er ab ut
typeset
ogdeclare
? - Dette er allerede godt besvart av Chris Down, mitt svar er bare et tilfelle der det ' er nyttig
- Kanskje jeg ikke var ' t klart. Kommentarer skal være kommentarer, og svarene skal være svar. Dette er en kommentar, ikke et svar.
- Utdraget mitt ville ikke ' t klart i en kommentar
- men du kan fremdeles tilordne variabler med typeset … bare erstatt deklarere med typeset, og du får fortsatt det samme resultatet.
help typeset
, ikke iman typeset
.typeset
anses å være foreldet?