• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

[gelöst] bash script bricht ab

chappert

Hacker
hy,

ich habe ein bash script mit einem menü gebastelt. Wenn man den Menüpunkt A aufruft werden eine Reihe von Befehlen ausgeführt. So sollte es jedenfalls sein, nur leider bricht er nach dem ersten Befehl ab, den er noch ausführt, und springt dann ins Menü zurück.

hiermal der Code vom Menüpunkt A

Code:
#!/bin/sh

function mrtg()
{
clear
echo -e "\\033[1m------------------------------------"
echo "Hauptmenue MRTG"
echo ------------------------------------
echo "A. MRTG fuer Server"
echo "B. MRTG fuer Mitarbeiter"
echo -e "C. beenden\\033[0m"
echo
echo -e "\\033[31mBitte Auswahl treffen A oder B usw.!!!\\033[0m"

echo -n -e  "\\033[32mAuswahl: "
read menue
echo -e "\\033[0m"
case "$menue"
in "A" | "a")
echo -n "erstelle mrtg.cfg..."
/usr/local/mrtg-2/bin/cfgmaker -global "WorkDir:/srv/www/htdocs/mrtg" \
--output=/etc/mrtg.cfg --global "Options[_]: bits, growright" \
--ifref=ip --output=/etc/mrtg.cfg \
192.168.1.1 192.168.1.121 192.168.1.122 192.168.1.124 192.168.1.126 192.168.1.127 192.168.1.128
echo " done"
# erstellen der Bilder und Graphen
echo -n "starte mrtg mit mrtg.cfg neu..."
mrtg /etc/mrtg.cfg
echo " done"
# erstellen der index.html fuer die Server unter Apache
echo -n "erstelle index.html fuer die Server..."
indexmaker -output=/srv/www/htdocs/mrtg/index.html -title="Universum Online Network MRTG Server" -sort=name /etc/mrtg.cfg
echo " done"
;;

ich kann mir darauf keinen reim machen, hoffentlicht weis einer von euch was hier faul ist.
 
A

Anonymous

Gast
Kann jetzt auf die Schnelle auch nur raten, aber mag er etwa diesen Befehl hier nicht ?
Code:
/usr/local/mrtg-2/bin/cfgmaker -global "WorkDir:/srv/www/htdocs/mrtg" \
--output=/etc/mrtg.cfg --global "Options[_]: bits, growright" \
--ifref=ip --output=/etc/mrtg.cfg \ 
192.168.1.1 192.168.1.121 192.168.1.122 192.168.1.124 192.168.1.126 192.168.1.127
Wenn er so im Script steht wie du ihn hier her kopiert hast, kann ich das gut verstehen. Da hast du jedem Menge Leerzeichen anstatt der Zeilensprünge mit dem Backslash markiert.

robi
 
OP
C

chappert

Hacker
da haste recht nach dem befehl macht er net weiter und spring zum menü zurück aber ohne fehler, den befehl führt er noch einwandfrei aus

hatte den auch schon ohne die \ drin zu stehen gehabt hatte auch net geholfen

Code:
/usr/local/mrtg-2/bin/cfgmaker -global "WorkDir:/srv/www/htdocs/mrtg" --output=/etc/mrtg.cfg --global "Options[_]: bits, growright" --ifref=ip --output=/etc/mrtg.cfg 192.168.1.1 192.168.1.121 192.168.1.122 192.168.1.124 192.168.1.126 192.168.1.127

also das ganze ding in einer Zeile

mit den leerzeichen verstehe ich net ganz, das sind die optionen zu dem befehl und da müssen leerzeichen rein...
 

abgdf

Guru
@chappert: Poste hier Skripte mal bitte so, daß sie laufen, soweit Du weißt: Deiner Funktion mrtg() fehlt die abschließende geschweifte Klammer, und aufgerufen wird sie auch nicht. Kann mir auch nicht vorstellen, daß nur ein Fall der case-Konstruktion allein läuft. Hab' keinen Bock, zum Testen erst mal den Beispielcode zu vervollständigen :x.
Für die Lesbarkeit hilfreich sind jeweils auch 4 Zeichen Einrückung, z.B.:
Code:
function myFunc()
{
    echo "Hallo"
    for (( i=1;i<=10;i++ ))
    do
        echo $i
    done
}

myFunc
Bitte verwende bei normalem Text auch Großbuchstaben.

Probier die eine Zeile doch mal so:
Code:
/usr/local/mrtg-2/bin/cfgmaker -global "WorkDir:/srv/www/htdocs/mrtg" --output="/etc/mrtg.cfg" --global "Options[_]: bits, growright" --ifref="ip" --output="etc/mrtg.cfg" "192.168.1.1 192.168.1.121 192.168.1.122 192.168.1.124 192.168.1.126 192.168.1.127"
Guck Dir auch mal dialog, Xdialog oder kdialog an.

Gruß
 
A

Anonymous

Gast
chappert schrieb:
mit den leerzeichen verstehe ich net ganz, ...
War wohl eine Täuschung, oder eine "Besonderheit" meines IE. Der IE mit dem ich mir das angeschaut hatte hat doch glatt hinter jedes "\" noch ein zusätzliches LEERZEICHEN angezeigt.

Jetzt auf FF unter Linux sehe ich nur noch eines davon und das ist in dem Beitrag von mir. :schockiert: Entweder ist das wieder so ein nettes »its-not-a-bug-its-a-feature« vom Internet Explorer,- oder ich brauch langsam ne Brille.

robi
 
OP
C

chappert

Hacker
@abgdf

sorry das ich nur den halben code gepostet hatte :eek:ps:
ich hab mal dein codeschnipsel ausprobiert, ging aber auch nicht er bricht wieder nach dem befehl ab und ladet im Menü :???: :irre:
 
OP
C

chappert

Hacker
ich habs nun hinbekommen es lag gar nich an diesem Befehl sondern an den 2 folgenden...

ich habe dort bei den Befehlen nun die komplette Pfadangabe hinzugefügt und schon gings
 
Oben