bash-Fehler: command not found

Rusticus

Registered User
Hallo,
nachdem ich eigentlich ein paa Ventrilos laufen lassen wollte und manuel mir zu blöd war, jeden einzeln zu starten, hab ich mir gedacht, ich mache mir ein Script.

Ich hatte bereits mit dem Script einen Server am laufen und hab dann weiter "gebastelt". Aber i-wann kam dann folgender Fehler:

Code:
bash: line 1: -d: command not found
oder
Code:
bash: line 1: -f/home/ventrilo/servers/9440: Datei oder Verzeichnis nicht gefunden

Was nicht gefunden wird, variiert.

Der Teil der meiner Meinung nach nicht mehr geht, ist direkt aus dem Beispielscript in der Ventrilo ReadMe

Beispielscript:
Code:
# Startup ventrilo servers.

VENPATH=/home/ventrilo
VENBIN=$VENPATH/ventrilo_srv

su ventrilo -c "$VENBIN -f$VENPATH/3784 -d"
su ventrilo -c "$VENBIN -f$VENPATH/4000 -d"

renice -5 `cat $VENPATH/3784.pid`
renice -5 `cat $VENPATH/4000.pid

Eigenes Script
Anmerkung: Es ist von der Funktion noch NICHT fertig und ich will mir vorerst nicht anhörn wie schlecht es gecoded ist.
Code:
#!/bin/bash


#######Auszuführender User##################################################################################
user=ventrilo
#######Ventrilo Verzeichnis angeben. ABSOLUTE ANGABE!########################################################
VENPATH=/home/ventrilo/servers
#######Port Range definiren; PortMin ist die unter Grenze, Port Max die obere################################
PortrangeEnable=1             #1 = ON ; 0 = OFF
portmin=9000                      #Falls keine Untergrenze vorhanden, bitte 0 angeben
portmax=9800                      #Falls keine Obergrenze vorhanden, bitte möglichst hohen Wert angeben
##############################################################################################################

cd $VENPATH


case $1 in

start)

echo "Ventrilo Starterscript 1.2 by Rusticus"
echo ""
echo "Serverport des zu startenden Servers eingeben!"
echo "Serverport:"
read port
echo "Script überprüft nun die Eingaben für Server $port ..."
echo ""

VENBIN=${VENPATH}/$port

    if [ $PortrangeEnable = 1 ] ; then
       echo "Portrange wird überprüft..."
       echo ""
            if [ $port -lt $portmax ]; then
            echo "Port innerhalb der Obergrenze"
            echo ""
            else
             echo "Port nicht in der Portrange"
             echo "Bitte Serverdatein anpassen!"
             echo "Script wird beendet..."
             exit 6
            fi
            if [ $port -gt $portmin ]; then
            echo "Port innerhalb der unteren Grenze"
            echo ""
            else
             echo "Port nicht in der Portrange"
             echo "Bitte Serverdatein anpassen!"
             echo "Script wird beendet..."
             exit 7
            fi
    fi


if [ -f ${port}.pid ]; then
   echo "${port}.pid exestiert bereits!"
   echo "Anscheinend läuft der Server schon, falls du"
   echo "dir sicher bist, das der Server ${port} nicht"
   echo "läuft, kannst du die ${port}.pid manuel löschen"
   echo "oder löschen lassen."
   echo ""
   echo -e "Möchtest du \033[1;31mAbbrechen(1)\033[0m oder ${port}.pid löschen lasssen(2)?"
  read del
  echo ""
  case "$del" in
       1) exit 5 ;;
       
       2) rm -i ${venpath}-${port}.pid
          if [ -f ${port}.pid ]
          then
                    echo "Löschung fehlgeschlagen!"
                    echo ""
          else
               echo "Löschung erfolgreich"
               echo ""
          fi  ;;
               
       *) echo "Ungültie Eingabe!Script wird beendet!"      ;;
  esac
fi
if [ -e $port ];
   then echo "Serverdatei vorhanden"
        echo "Prüfung wird fortgesetzt"
        echo ""

           if [ -f ${port}.ini ];
              then echo "${port}.ini-Datei vorhanden"
                   echo "Prüfung wird fortgesetzt"
                   echo ""
                   
                        if [ -f ${port}.usr ];
                           then echo "${port}.usr-Datei vorhanden"
                                echo "Prüfung wird fortgesetzt"
                                echo ""
                           else echo "${port}.usr-Datei nicht vorhanden"
                                echo "Bitte ${port}.urs-Datei anpassen und Script neu starten"
                                exit 3
                         fi
                         
              else echo "${port}.ini-Datei nicht vorhanden"
                   echo "Bitte ${port}.ini-Datei anpassen und Script neu Starten"
                   exit 2
            fi

   else echo "Serverdatei nicht vorhanden!!"
        echo "Bitte Serverdatei anpassen und Script neu starten"
        exit 1
fi
        
 echo "Serverdatei wird jetzt auf Ausführbarkeit überprüft"
 echo ""
 if [ -x $port ];then
    echo "Serverdatei ist ausführbar"
    echo "Server wird jetzt gestartet..."
    
 else
     echo "Serverdatei ist nicht ausführbar!"
     echo "Es wird versucht die Rechte zu setzen"
     echo ""
     chmod +X $port
     
     if [ -x $port ]; then
        echo "Serverdatei ist jetzt ausführbar"
        echo ""
     else
         echo "Rechten konnten nicht gesetzt werden, bitte manuel setzen"
         echo "Script wird beendet"
         exit 4
     fi
 fi

su $user -c "$venbin -f${VENPATH}/${port}  -d"

exit 0
;;

stop)

echo "Ventrilo Starterscript 1.2 by Rusticus"
echo ""
echo "Serverport des zu stoppenden Servers wählen"
echo "Serverport" read port
echo ""
     if [ -e $port.pid ]; then
     echo " Server scheint zu laufen und wird nun beendet"
     else echo "Server scheint bereits gestoppt zu sein"
     fi
exit 10 ;;

*) echo "Falsche Eingabe! Mögliche Startparameter:"
   echo "{Start|Restart|Stopp|Status}"
   exit 11
   ;;
esac

Hoffe ihr könnt mir weiterhelfen und mir bei meinen kleinen Script weiterhelfen

Rusticus
 
Moin Rusticus,

ich bin ja nun wahrleich kein Programmierer aber irgend so ein schlauer Kerl hat mir mal erzählt das die Zeilenangaben bei den Fehlermeldungen schon sehr praktisch sind.

Zitat :
Code:
bash: line 1 ....

Bist du dir sicher das das was du hier im Forum gepastet hast auch das ist was du versuchst auszuführen?
Denn bei dir ist in Zeile 1 kein "-d" zu finden :)
 
Da sind zwei Scripts. (Eins davon ist nicht vollständig.) Bei welchem kommt der o.g. Fehler?

huschi.
 
Danke
Nachn 3tem mal hinschaun hab ich es gerafft

edit: Geändert und ausprobiert,geht danke!
 
Last edited by a moderator:
Back
Top