Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

gelöst Bash in Shell ok, Über Bash Aufgerufen error

Mitglied: Loip104

Loip104 (Level 1) - Jetzt verbinden

22.12.2013, aktualisiert 21:40 Uhr, 1695 Aufrufe, 2 Kommentare

Servus,


Ich habe grade ein SourceServer Start script für CS:GO etwas für mich angepasst,
Insbesondere habe ich SU geadded.

Nur leider bekomme ich ein Kleines Problem .
Wen ich das Script als "root" ausführe direkt in der Shell ist alles io es läuft durch und der der Server startet auch.

01.
root@steam:/home/steam/start-scripte# ./one-war.sh start 
02.
Start oneWAR-hl2
Wen ich dieses Script nun Aber aus einem Bash script heraus aufrufe erhalte ich einen Syntex fehler.

01.
root@steam:/home/steam/start-scripte# /etc/init.d/HL2-MASTER 
02.
root@steam:/home/steam/start-scripte# one-war.sh: 16: one-war.sh: function: not found 
03.
one-war.sh: 45: one-war.sh: Syntax error: "}" unexpected
Ich kann mit nur leider Überhaupt nicht erklären wieso es da überhaupt zu unterschieden kommt.


Hier mal das start script.
01.
#!/bin/bash  
02.
 
03.
 
04.
 
05.
 
06.
 
07.
LOW_USER="steam" 
08.
DIR="/home/steam/games/hl2/one-war" # Absolute dir to the CS:S server 
09.
DEAMON="srcds_run" # Deamon to open; normaly not to change 
10.
IP="94.23.164.136" # IP of you server 
11.
PORT="27045" # Default port of the CS:S Server is 27015 
12.
PARAMS="-game hl2mp -ip $IP -port $PORT" # Deamon Parameters 
13.
PARAMS2="+map dm_lockdown +maxplayers 16 +tv_port 27046 +clientport 27047" # Deamon Parameters 
14.
SCREENNAME="oneWAR-hl2" # A unique name for the screen instance of the server 
15.
 
16.
function init { 
17.
if [ -z "$DIR" ]; then 
18.
 echo "Please fill out the DIR variable." 
19.
 exit 0 
20.
fi 
21.
if [ -z "$DEAMON" ]; then 
22.
 echo "Please fill out the DEAMON variable." 
23.
 exit 0 
24.
fi 
25.
if [ -z "$PARAMS" ]; then 
26.
 echo "Please fill out the PARAMS variable." 
27.
 exit 0 
28.
fi 
29.
if [ -z "$PARAMS2" ]; then 
30.
 echo "Please fill out the PARAMS2 variable." 
31.
 exit 0 
32.
fi 
33.
if [ -z "$SCREENNAME" ]; then 
34.
 echo "Please fill out the SCREENNAME variable." 
35.
 exit 0 
36.
fi 
37.
if [ -z "$IP" ]; then 
38.
 echo "Please fill out the IP variable." 
39.
 exit 0 
40.
fi 
41.
if [ -z "$PORT" ]; then 
42.
 echo "Please fill out the PORT variable." 
43.
 exit 0 
44.
fi 
45.
46.
 
47.
 
48.
 
49.
 
50.
function start_server { 
51.
 if [[ `su - $LOW_USER -c "screen -ls | grep $SCREENNAME"` ]]; then 
52.
 echo "The server runs already as screen instance $SCREENNAME" 
53.
 else 
54.
 echo "Start $SCREENNAME" 
55.
 if [ -d "$DIR" ]; then 
56.
 cd "$DIR" 
57.
 su - $LOW_USER -c "screen -d -m -S $SCREENNAME $DIR/$DEAMON $PARAMS $PARAMS2" 
58.
 else 
59.
 echo "Please fill out the DIR variable" 
60.
 fi 
61.
 fi 
62.
}  
63.
 
64.
function stop_server { 
65.
 if [[ `screen -ls | grep $SCREENNAME` ]]; then 
66.
 echo -n "Sop $SCREENNAME" 
67.
 kill `screen -ls | grep $SCREENNAME | awk -F . '{print $1}'| awk '{print $1}'` 
68.
 echo " ...done" 
69.
 else 
70.
 echo "Can not find the screen instance $SCREENNAME" 
71.
 fi 
72.
73.
 
74.
function update_server { 
75.
 echo "Ausgebaut Sry" 
76.
77.
 
78.
function wrong_input { 
79.
 echo "Usage: $0 {start|stop|restart|update|console|check}" 
80.
 exit 1 
81.
82.
 
83.
function get_screen { 
84.
 screen -r $SCREENNAME 
85.
86.
 
87.
function check_ping { 
88.
 if [ "`/usr/bin/quakestat -a2s $IP:$PORT | grep -v ADDRESS | awk '{ print $2 }' | awk -F/ ' { print $1}'`" = "DOWN" ]; then 
89.
 sleep 10 
90.
 if [ "`/usr/bin/quakestat -a2s $IP:$PORT | grep -v ADDRESS | awk '{ print $2 }' | awk -F/ ' { print $1}'`" = "DOWN" ]; then 
91.
 stop_server 
92.
 start_server 
93.
 fi 
94.
 fi 
95.
96.
 
97.
init 
98.
 
99.
case "$1" in 
100.
 start) 
101.
 start_server 
102.
 ;; 
103.
 
104.
 stop) 
105.
 stop_server 
106.
 ;; 
107.
 
108.
 restart) 
109.
 stop_server 
110.
 start_server 
111.
 ;; 
112.
 
113.
 update) 
114.
 update_server 
115.
 ;; 
116.
 
117.
 console) 
118.
 get_screen 
119.
 ;; 
120.
 
121.
 check) 
122.
 check_ping 
123.
 ;;  
124.
 
125.
 *) 
126.
 wrong_input 
127.
 ;; 
128.
esac 
129.
exit 0

Und über dieses Script wird es aufgerufen
01.
#!/bin/bash 
02.
 
03.
#sh enno001.sh start & 
04.
#sh jump.sh start & 
05.
sh /home/steam/start-scripte/one-war.sh start & 
06.
#sh rel-pms.sh start & 
07.
#sh zeibig-fun.sh start & 
08.
 
09.
 
10.
 
11.
exit 1
Mitglied: Arano
LÖSUNG 22.12.2013, aktualisiert um 21:40 Uhr
Hi,

ganz sicher bin ich mir auch gerade nicht ABER
sh != bash
shell und bash sind zwei __unterschiedliche__ Interpreter !

sh: function
bash: function

Demnach ist dein Script nach der Bash-Syntax geschrieben, du aber rufst es mit dem Shell-Interpreter auf, dieser wiederum kann nun in der Syntax keine Logik feststellen und wirft die entsprechende Fehlermeldung !

Ich würde dir vorschlagen dich in diesem Fall für einen gemeinsamen Interpreter zu entscheiden -> bash.
Dann musst du nur den Aufruf des Scriptes der Bash-Syntax nach anpassen.


~Arano
Bitte warten ..
Mitglied: Loip104
22.12.2013 um 21:40 Uhr
Danke dir fürdiesen hinweis.

hat nun Geklappt
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
Bash Shell Script lernen
gelöst Frage von RobJoe25Batch & Shell4 Kommentare

Hallo Administrator-Community, ich habe eine Frage. Kennt jemand gute Homapage´s (am besten auf Deutsch) oder gute Bücher, wie ich ...

Batch & Shell
Hochkomma im String vom Bash shell
Frage von OIOOIOOIOIIOOOIIOIIOIOOOBatch & Shell7 Kommentare

Hallo an alle, ich suche eine Möglichkeit einen Vollständigen Befehl in String zur verpacken. Ja ich könnte es da ...

Linux

Eigenes Shell Skript (Bash) mit eigenen Parametern erstellen

gelöst Frage von WinLiCLILinux10 Kommentare

Hallo zusammen, ich habe eine kleine Noob Frage. Ich würde gerne ein kleines Shellskript erstellen, wo ich eigene Optionen ...

Batch & Shell

Bash sqlplus oder Bash Fehler?

Frage von MarabuntaBatch & Shell7 Kommentare

Hallo, da ich sehr eingeschränkt in Bash bin, brauche ich hier etwas Hilfe. Was stimmt mit dem EOF nicht? ...

Neue Wissensbeiträge
Windows 10
Zero-Day-Lücke in Microsoft Edge
Information von kgborn vor 1 TagWindows 10

In Microsofts Edge-Browser klafft wohl eine nicht geschlossene (0-Day) Sicherheitslücke im Just In Time Compiler (JIT Compiler) für Javascript. ...

Sicherheit
Microsoft und Skype: Sicherheit
Information von kgborn vor 1 TagSicherheit

Die Tage gab es ja einige Berichte zur Sicherheit des Skype-Updaters. Der Updater von Skype läuft unter dem Konto ...

Datenschutz

Behörden ignorieren Sicherheitsbedenken gegenüber Windows 10

Information von Penny.Cilin vor 2 TagenDatenschutz8 Kommentare

Hallo, passend zum Thema Ablösung LIMUX in München ein interessanter Beitrag dazu: Behörden ignorieren Sicherheitsbedenken gegenüber Windows 10 Anscheinend ...

Sicherheit
Information Security Hub Munich airport
Information von brammer vor 2 TagenSicherheit

Hallo, Neues Center für Cyber Kriminalität am Münchener Flughafen brammer

Heiß diskutierte Inhalte
DSL, VDSL
Mindestgeschwindigkeiten DSL Telekom
Frage von justlukasDSL, VDSL13 Kommentare

Hallo zusammen, Seit diesem Jahr habe ich Verständnisprobleme mit dem Verhalten der Telekom. Wir haben seit einem Jahr VDSL ...

Switche und Hubs
LANCOM-Switch: Probleme (no link) mit SFP-Modulen?
Frage von THETOBSwitche und Hubs11 Kommentare

Hi zusammen, ich habe folgendes Problem: Und zwar habe ich an einem Standort drei Switche verbaut - LANCOM GS-2326P+, ...

Humor (lol)
Was könnte man mit einem Server machen? Idee gesucht
Frage von 2SeitenHumor (lol)10 Kommentare

Hey Zusammen Ich habe einen alten HP G2 Rackserver zu Hause rumliegen. 28GB Ram, 1xAMD Prozi mit etwa 2GHz. ...

Firewall
RB2011 Firewall Rule eine bestimmte Mac oder IP Adresse nicht zu blockieren
Frage von lightmanFirewall10 Kommentare

Hallo liebes Forum mit ihren Spezialisten. Ich habe meine Firewall so konfiguriert das kein Endgerät ohne meine Speziellen Erlaubnis ...