Es tut uns so unschuldige Frage - Ich versuche einfach zu undertand ...Warum werden "declare -f" und "-dea -a" in Bash-Skripten benötigt?
Zum Beispiel - ich habe:
$ cat test.sh
#!/bin/bash
declare -f testfunct
testfunct() {
echo "I'm function"
}
testfunct
declare -a testarr
testarr=([1]=arr1 [2]=arr2 [3]=arr3)
echo ${testarr[@]}
Und wenn ich es benutze ich:
$ ./test.sh
I'm function
arr1 arr2 arr3
hier also ist eine frage - wofür muss ich (wenn muss ...) declare
hier einfügen? Mit ihm - oder ohne es funktioniert es gleich ...
kann ich zum Beispiel declare -i var
oder declare -r var
verstehen. Aber was ist -f
(Funktion deklarieren) und -a
(Array deklarieren)?
Danke für Tipps und Links.
Die häufigste Verwendung von 'declare' innerhalb von Funktionen ist, wo es die gleiche wie' local' verhält, wenn keine Flaggen gegeben. Es kann auch für einige Datentypen erforderlich sein, d. 'declare -A' für assoziative Arrays. 'declarieren -g' ist oft ein nützliches Feature, wenn man es einem Leser ganz explizit machen will, dass man sich * absichtlich * auf ein globales Innere einer Funktion bezieht, anstatt zu vergessen, es zu deklarieren und implizit global zu machen. –