Meine Skriptfunktionen funktionieren nicht richtig

265
Purpe_Fedora

Link zu meinem fraglichen SkriptIch habe an einem Skript gearbeitet, das mir bei der Einrichtung meines Computers nach einer Neuinstallation behilflich ist. Meistens lief es relativ reibungslos. Aber ich fand zufällig heraus, dass Bash-Skripts Funktionen enthalten können, und ich war begeistert! Natürlich habe ich es mit einem meiner komplexeren Skripte ausprobiert und anstatt zu laufen, wie es sollte, erhielt ich seltsame Ergebnisse. Ich habe jedoch keine offensichtlichen Fehler festgestellt, vielmehr sind die Ergebnisse völlig unerwartet. Ich habe zum Beispiel eines der Ergebnisse angegeben, das ich unter den Bedingungen der Deaktivierung meiner WLAN-Karte erhalten habe, und nachdem ich meine Repo-Funktion aufgerufen habe (mein komplettes Skript wird im obigen Link angezeigt), überspringt es den Befehl zum Kopieren der Dateien und geht direkt zur Frage, ob ich meine Funkkarte installieren möchte, die in keiner der Funktionen aufgerufen wurde, die aufgerufen werden sollten. Ich habe das Ergebnis meines Beispiels unten gegeben, aber das gesamte Skript läuft unter keinen Umständen so, wie es sollte. Bitte helfen Sie mir, weil ich ratlos bin. Ich verwende fedora 24 64 bit und gebe gerne alle anderen gewünschten Informationen oder Dateien an, die nicht in dieser Frage enthalten sind.

 This script operates under the impression that you have an active internet connection. connect: Network is unreachable We have found that there is no active internet connection available. Wel will troubleshoot the issue. Your wireless card is inactive, do you wish to try run the install for it? Y/N  n Checking the status of your ethernet card.  We found that your ethernet card is active, checking internet connection. connect: Network is unreachable We cannot find an active internet connection. Please connect to the network then try again? Y/N 
1
Sind Sie sicher, dass Ihre Y / N-Logik in CopyRepoFiles korrekt ist? Es gibt eine Kopie-Anweisung unter Y, springt jedoch direkt zu TestInternet auf N. basierend auf dem Satz "Wurden die Repo-Dateien bereits kopiert?" das scheint rückwärts. Frank Thomas vor 7 Jahren 0
Vielen Dank für den Erfolg, den Sie zu diesem Thema gemacht haben, und ich habe es gerade behoben, aber es ändert nichts an den komischen Ergebnissen, die ich auf lange Sicht bekomme. Zum Beispiel wird direkt zur Ausführung des Menüskripts gesprungen, anstatt die Internetverbindung zu prüfen und zu aktualisieren. Purpe_Fedora vor 7 Jahren 0
Hmm, ich weiß nicht, wie Sie 11 bekommen haben. Diese Zeile soll nach einer Internetverbindung suchen. Ich vermute, ich kann das versuchen, aber wenn ich nicht versehentlich jede Aufgabe geändert habe, sind sie ein Kopieren und Einfügen des ursprünglichen Skripts, das ohne die Funktion einwandfrei funktioniert. Denken Sie jetzt, da ich darüber nachdenke, sollte ich es mit den Funktionen sauber umschreiben, weil bei der Konvertierung etwas verloren gegangen sein könnte? Oder ist das ein Overkill? Purpe_Fedora vor 7 Jahren 0
Vielleicht möchten Sie unter [So debuggen Sie ein Bash-Skript?] (Http://unix.stackexchange.com/q/155551/80216) nachschlagen. G-Man vor 7 Jahren 0
Ich habe Ihr Skript in meiner Umgebung getestet (Debian Wheezy x86, Bash Version 4.2.37 (1) -release) und nachdem ich bei der ersten Frage 'J' eingegeben hatte, wurde ich gefragt: `Wurden die Repository-Dateien bereits kopiert? J / N ". Entweder gibt es einen Fehler in Ihrer Version der Bash-Shell oder die Konfiguration ist fehlerhaft. Larssend vor 7 Jahren 0
das soll die zweite Frage sein ... oder zumindest war das meine Absicht. Wenn ich das nächste Mal auf meinem Computer bin, füge ich das ursprüngliche Skript ein, damit Sie sehen können, was es tun soll. Purpe_Fedora vor 7 Jahren 0
Wie versprochen ist hier der Link zu [meiner ursprünglichen Skriptdatei] (http://pastebin.com/AmKgPM5j). Ich hoffe, dies hilft bei der Beseitigung von Verwirrungen. Purpe_Fedora vor 7 Jahren 0

0 Antworten auf die Frage