Kan nogen forklare forskellen mellem erklære og typesæt med virkelige eksempler.
Svar
I bash, typeset og declare er nøjagtigt de samme. Den eneste forskel er, at typeset betragtes som forældet.
typeset: typeset [-aAfFgilrtux] [-p] name[=value] ... Set variable values and attributes. Obsolete. See `help declare".
Man-siden viser dem endda 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 nogle andre skaller, for eksempel ksh93. Hvis du sigter mod bærbarhed på tværs af skal, skal du bruge typeset (og sørg for, at den måde, du kalder det på, er bærbar). Hvis du ikke bryr dig om en sådan bærbarhed, skal du bruge declare.
Kommentarer
Svar
Jeg kender et tilfælde, hvor declare er nyttigt for at undgå det onde eval: variabel indirektion :
$ var=foo $ x=var $ declare "$x=another_value" $ echo $var another_value
Kommentarer
- Dette er en god kommentar, men hvordan svarer det på det spørgsmål, der er ab ud
typesetogdeclare? - Dette er allerede godt besvaret af Chris Down, mit svar er bare et tilfælde hvor det ' er nyttigt
- Måske var jeg ikke ' t klart. Kommentarer skal være kommentarer, og svarene skal være svar. Dette er en kommentar, ikke et svar.
- Mit uddrag ville ikke ' t klart i en kommentar
- men du kan stadig tildele variabler med typeset … bare udskift erklær med typeset, og du får stadig det samme resultat.
help typeset, ikke iman typeset.typesetbetragtes som forældet?