Ich habe jetzt selber eine alte Ubuntu 11.10 Live-CD ausgegraben und damit ein wenig probiert. Das Problem scheint die Variablendefinition mit "
declare -ag" zu sein.
Mit dem internen Befehl "declare" kann man den Variablentyp explizit festlegen. Man kann dann zum Beispiel numerische Variablen nicht mehr mit normalem Text überschreiben. Mit der Option "
-g" sollte man globale Variablen bekommen. Tatsächlich aber wird der Gültigkeitsbereich der Variablen auf merkwürdige Weise
eingeschränkt: Sie gelten jetzt nur noch in dieselben Datei. Wenn man aus einer anderen Datei auf die Variablen zugreifen will, sind sie nicht mehr definiert.
Das heißt, man muss in der Datei updates_and_languages.bash die Definition:
- Code: Select all
declare -ag updates_menu=(
"w60 Windows Server 2008, 32-bit"
"w60-x64 Windows Server 2008, 64-bit"
"w61 Windows 7, 32-bit"
"w61-x64 Windows 7 / Server 2008 R2, 64-bit"
"w62-x64 Windows Server 2012, 64-bit"
"w63 Windows 8.1, 32-bit"
"w63-x64 Windows 8.1 / Server 2012 R2, 64-bit"
"w100 Windows 10, 32-bit"
"w100-x64 Windows 10 / Server 2016, 64-bit"
"o2k7 Office 2007, 32-bit"
"o2k10 Office 2010, 32-bit"
"o2k10-x64 Office 2010, 32-bit and 64-bit"
"o2k13 Office 2013, 32-bit"
"o2k13-x64 Office 2013, 32-bit and 64-bit"
"o2k16 Office 2016, 32-bit"
"o2k16-x64 Office 2016, 32-bit and 64-bit"
)
ändern in:
- Code: Select all
updates_menu=(
"w60 Windows Server 2008, 32-bit"
"w60-x64 Windows Server 2008, 64-bit"
"w61 Windows 7, 32-bit"
"w61-x64 Windows 7 / Server 2008 R2, 64-bit"
"w62-x64 Windows Server 2012, 64-bit"
"w63 Windows 8.1, 32-bit"
"w63-x64 Windows 8.1 / Server 2012 R2, 64-bit"
"w100 Windows 10, 32-bit"
"w100-x64 Windows 10 / Server 2016, 64-bit"
"o2k7 Office 2007, 32-bit"
"o2k10 Office 2010, 32-bit"
"o2k10-x64 Office 2010, 32-bit and 64-bit"
"o2k13 Office 2013, 32-bit"
"o2k13-x64 Office 2013, 32-bit and 64-bit"
"o2k16 Office 2016, 32-bit"
"o2k16-x64 Office 2016, 32-bit and 64-bit"
)
Entsprechend müssen auch die anderen Arrays languages_menu, options_menu_windows_vista, options_menu_windows_8 und options_menu_office geändert werden.
Dann haben diese Arrays wieder globale Gültigkeit, wie es sein sollte.
Entscheidend ist die Definition mit "declare -ag" sowieso nicht, da der Typ als "indiziertes Array" auch durch die runden Klammern eindeutig festgelegt wird.
Wahrscheinlich spielen aber noch andere Faktoren da mit rein, zum Beispiel wie der interne Befehl "select" die Arrays wieder auflöst.
Viele Grüße,
hbuhrmester