Hva er forskjellen mellom deklarere og typesett

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

  • kan du behage gi et eksempel på hvor og hvorfor denne bruken i bash-skript
  • … som jeg sa, de er nøyaktig de samme. Jeg forstår ikke ' hvordan jeg kan skille dem hvis de er det.
  • Bra. Merk at " foreldet " bare vises i help typeset, ikke i man typeset.
  • @ChrisDown, ville du ikke ' ikke tilfeldigvis vite hvorfor, akkurat, typeset anses å være foreldet?

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 og declare?
  • 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.

Legg igjen en kommentar

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *