Hallo,

leider habe ich schon seit einiger Zeit ein Syntax mit meinem eigenen Start/Stop/Restart-Script für einen Shoutcast-Server.

Hier mal das Script:

Code:
#!/bin/bash
# Startprogramm für den SHOUTCasting-Server
# Copyright by Michael Kaps; www.michis-homepage.net

#################################### KONFIGURATION ########################################
###########################################################################################
## Pfad zur Datei sc_serv des SHOUTCasting-Servers (Dateinamen nicht mehr mit angeben)
path_shoutcast="/home/shoutcast"
###########################################################################################
## Screens zur Überwachung des Servers verwenden (Aufrufbar mit screen -r sc1) ( 0 = Aus / 1 = Ein)
use_screen="1"
###########################################################################################
## Speziellen Benuzter wählen der den SHOUTCasting-Server starten soll (Erhöht die Sicherheit; User muss angelegt sein) ( 0 = Aus / 1 = Ein)
use_user="0"
username="shoutcast"
###########################################################################################
#################################### KONFIGURATION ENDE ###################################    

case "${1}" in
        start)
                ## if [ "${start}" != "1" ]; then
                if [[ ! -e "${path_shoutcast}/server.pid" ]]; then

                        # Falls Screen aktiviert
                        if [ "${use_screen}" == "1" ]; then
                        	if [ "${use_user}" == "1" ]; then
                                	su -c '"${path_shoutcast}/sc_serv"' "${username}"
                                else
                                	screen -dmS sc1 "${path_shoutcast}/sc_serv"
                                fi

                                # Wenn Kommando fehlerfrei, dann PID-File anlegen
                                if [ "${?}" == "0" ]; then
                                        echo "done"
                                        touch "${path_shoutcast}/server.pid"
                                else
                                        echo "false"
                                fi

                        # Falls Screen nicht aktiviert oder nicht eindeutig
                        else
                        	if [ "${use_user}" == "1" ]; then
                                	su -c '"${path_shoutcast}/sc_serv"' "${username}"
                                else
                                	"${path_shoutcast}/sc_serv"
                                fi

                                # Wenn Kommando fehlerfrei, dann Variable auf gestartet setzen
                                if [ "${?}" == "0" ]; then
                                        echo "done"
                                        touch "${path_shoutcast}/server.pid"
                                else
                                        echo "false"
                                fi
                        fi
                else
                        echo "Server scheint bereits online zu sein!"
                fi
        ;;
        restart)
                ##if [ "${start}" == "1" ]; then
                if [[ -e "${path_shoutcast}/server.pid" ]]
                        if [ "${use_screen}" == "1" ]; then
                        	if [ "${use_user}" == "1" ]; then
                        		su -c "killall -9 sc1" "${username}"
                        		su -c 'screen -dmS sc1 "${path_shoutcast}/sc_serv"' "${username}"
                        	else
                        		killall -9 sc1
                        		screen -dmS sc1 "${path_shoutcast}/sc_serv"
                        	fi
                        	
                                if [ "${?}" == "0" ]; then
                                        echo "done"
                                        touch "${path_shoutcast}/server.pid"
                                else
                                        echo "false"
                                fi
                        else
                                if [ "${use_user}" == "1" ]; then
                               		su -c 'killall -9 "${path_shoutcast}/sc_serv" && "${path_shoutcast}/sc_serv"' "${username}"'
                               	else
                               		killall -9 "${path_shoutcast}/sc_serv" && "${path_shoutcast}/sc_serv"' "${username}"
                               	fi
                               	
                                if [ "${?}" == "0" ]; then
                                        echo "done"
                                        touch "${path_shoutcast}/server.pid"
                                else
                                        echo "false"
                                fi
                        fi
                else
                        echo "Der Server scheint nicht online zu sein, bitte erst starten!"
                fi
        ;;
        status)
                ##if [ "${start}" == "1" ]; then
                if [[ -e "${path_shoutcast}/server.pid" ]]
                        echo "Server scheint online zu sein!"
                ##elif [ "${start}" == "0" ]; then
                elif [[ ! -e "${path_shoutcast}/server.pid" ]]
                        echo "Server scheint offline zu sein!"
                fi
        ;;
        stop)
                ##if [ "${start}" == "1" ]; then
                if [[ -e "${path_shoutcast}/server.pid" ]]
                        if [ "${use_screen}" == "1" ]; then
                        	if [ "${use_user}" == "1" ]; then
                                	su -c 'killall -9 "sc1" "${username}"'
                                else
                                	killall -9 sc1
                                fi
                                
                                if [ "${?}" == "0" ]; then
                                        echo "done"
                                        rm -f "${path_shoutcast}/server.pid"
                                else
                                        echo "false"
                                fi
                        else
                                if [ "${use_user}" == "1" ]; then
                                	su -c 'killall -9 "${path_shoutcast}/sc_serv"'
                                else
                                	killall -9 "${path_shoutcast}/sc_serv"
                                fi
                                
                                if [ "${?}" == "0" ]; then
                                        echo "done"
                                        rm -f "${path_shoutcast}/server.pid"
                                else
                                        echo "false"
                                fi
                        fi
        
                ##elif [ "${start}" == "0" ]; then
                elif [[ ! -e "${path_shoutcast}/server.pid" ]]
                        echo "Server scheint nicht online zu sein, bitte erst starten!"
                fi
        ;;
        *)
                echo "Syntax:"
                echo "shoutcast (start|stop|status|restart)"
                exit 2
        ;;
esac
Und hier die Fehlermeldung die ich bekomme:

Code:
hxxxxx:~# sh shoutcast_control.sh
: command not foundh: line 4:
: command not foundh: line 18:
'houtcast_control.sh: line 19: syntax error near unexpected token `in
'houtcast_control.sh: line 19: `case "${1}" in
An was könnte das denn liegen?
Ich kann leider einfach kein Syntaxfehler in Zeile 19 finden.
Ebenso seltsam erscheint mir der Fehler in Zeile 4 und 18, worüber er sich über eine leere Zeile beschwert.

MfG
Michael