Sie sind nicht angemeldet.

[gelöst] Fehler in "case"?

Lieber Besucher, herzlich willkommen bei: Ubuntu-Forum & Kubuntu-Forum | www.Ubuntu-Forum.de. Falls dies Ihr erster Besuch auf dieser Seite ist, lesen Sie sich bitte die Hilfe durch. Dort wird Ihnen die Bedienung dieser Seite näher erläutert. Darüber hinaus sollten Sie sich registrieren, um alle Funktionen dieser Seite nutzen zu können. Benutzen Sie das Registrierungsformular, um sich zu registrieren oder informieren Sie sich ausführlich über den Registrierungsvorgang. Falls Sie sich bereits zu einem früheren Zeitpunkt registriert haben, können Sie sich hier anmelden.

seju

User

  • »seju« ist männlich
  • »seju« ist der Autor dieses Themas

Beiträge: 109

Registrierungsdatum: 22.12.2007

Derivat: Ubuntu

Architektur: 32-Bit PC

Andere Betriebssysteme: Server 8.04

  • Nachricht senden

1

14.06.2011, 09:27

Fehler in "case"?

Hallo Leute,

seit dem wechsel von Ubuntu 8.04 x86 habe ich das Problem, dass meine Shell-Scripts nicht mehr funktionieren.

Ich betreibe ein Sponsoring-Projekt und zum neustart der Gameserver benutze ich ein miniserv.pl kombination um mit meiner Webseite zu komunizieren.
Das ganze hat auch vor dem Serverwechsel ganz gut funktioniert, jedoch kommt nun der Fehler

Quellcode

1
/home/cs-admin/Users/seju/orangebox/sss: 70: [[: not found


Hier das Script:

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
# # DON'T FORGET TO CHANGE THE PATH TO YOUR NEEDS!
USER=seju
DIR=/home/cs-admin/Users/$USER/orangebox
DAEMON=$DIR/srcds_run
PORT=27015
TICKRATE=66
GAME=cstrike
STARTMAP=de_dust
PLAYERS=18
NAME=user.$USER                                             
DESC="CSS:S Server"

#
#
# dont toutch anything below

PATH=/bin:/usr/bin:/sbin:/usr/sbin

PARAMS="-game $GAME +map $STARTMAP -maxplayers $PLAYERS -port $PORT"

case "$1" in
 start)
   echo "Starting $DESC: $NAME"
   if [ -e $DIR ];
   then
    cd $DIR
    screen -d -m -S $NAME $DAEMON $PARAMS
   else echo "No such directory: $DIR!"
   fi
   ;;

 stop)
   if [[ `screen -list |grep $NAME` ]]
   then
       echo -n "Stopping $DESC: $NAME"
       kill `screen -list |grep $NAME |awk -F . '{print $1}'|awk '{print $1}'`
       echo " ... done."
   else
       echo "Coulnd't find a running $DESC"
   fi
   ;;

 restart)
   if [[ `screen -ls |grep $NAME` ]]
   then
       echo -n "Stopping $DESC: $NAME"
       kill `screen -ls |grep $NAME |awk -F . '{print $1}'|awk '{print $1}'`
       echo " ... done."
   else
       echo "Coulnd't find a running $DESC"
   fi

   echo -n "Starting $DESC: $NAME"
   cd $DIR
   screen -d -m -S $NAME $DAEMON $PARAMS
   echo " ... done."
   ;;

 status)
   echo "settings,$IP,$PORT,$PLAYERS,$GAME,$TICKRATE" 
   ps aux | grep -v grep | grep $DAEMON  > /dev/null
   CHECK=$?
   [ $CHECK -eq 0 ] && echo "Server $DESC is online" || echo "Server $DESC is offline"
   ;;

 *)
   echo "Usage: $0 {start|stop|status|restart}"
   exit 1
   ;;
esac

exit 0


Das mysteriöse daran, wenn man über das Webinterface den Server startet, funktioniert das. Nur das Server stopen geht nicht.

Falls mehr informationen benötigt werden, einfach fragen, werde diese dann nachreichen.

Gruß

Seju
Server: CPU: Intel Atom 330 RAM: 2,0 GB DDR2 GPU: onboard HDD: 1,75 TB OS: Ubuntu Server 8.04 LTS 32bit
Mein Blog | Server Sponsoring

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »seju« (14.06.2011, 10:43)


Soni

User

Beiträge: 204

Registrierungsdatum: 13.12.2009

Derivat: Kein Ubuntu-Derivat

Architektur: 64-Bit PC

  • Nachricht senden

2

14.06.2011, 10:34

DASH

He,
eine dash != bash => [[ ]] gibts da nicht. Kannst den Link von /bin/sh entfernen mit eine bash draus machen

Quellcode

1
rm /bin/sh; ln -s /bin/bash /bin/sh

Alternativ dürfte schon eine Shebangzeile in deinem Skript reichen, also

Quellcode

1
#!/bin/bash
in die erste Zeile.

Testen kannste das im Terminal mit

Quellcode

1
2
3
4
bash /home/cs-admin/Users/seju/orangebox/sss
#oder
dash /home/cs-admin/Users/seju/orangebox/sss
#Fehler [[ ]] 

Zitat von ».user«

doch, die ganze Welt besteht aus fenstern!

seju

User

  • »seju« ist männlich
  • »seju« ist der Autor dieses Themas

Beiträge: 109

Registrierungsdatum: 22.12.2007

Derivat: Ubuntu

Architektur: 32-Bit PC

Andere Betriebssysteme: Server 8.04

  • Nachricht senden

3

14.06.2011, 10:43

Hallo Soni,

vielen vielen Dank, dass "#!/bin/bash" hat funktioniert.

Darauf hätte ich auch selbst kommen können -.-"

Gruß

Seju

/Gelöst^^
Server: CPU: Intel Atom 330 RAM: 2,0 GB DDR2 GPU: onboard HDD: 1,75 TB OS: Ubuntu Server 8.04 LTS 32bit
Mein Blog | Server Sponsoring