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

Frage Entwicklung Batch & Shell

Mitglied: Loip104

Loip104 (Level 1) - Jetzt verbinden

22.12.2013, aktualisiert 21:40 Uhr, 1676 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 ...

Batch & Shell
Problem beim Starten eines Bash-Shell-Scripts mit einem anderen
gelöst Frage von Fabian-HaasBatch & Shell14 Kommentare

Hallo, Ich habe folgendes Bash-Script geschrieben, welches nach einer Eingabe des Benutzers ein bestimmtes anderes Bash-Script starten soll. Dieses ...

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
Batch & Shell

Open Object Rexx: Eine mittlerweile fast vergessene Skriptsprache aus dem Mainframebereich

Information von Penny.Cilin vor 1 StundeBatch & Shell1 Kommentar

Ich kann mich noch sehr gut an diese Skriptsprache erinnern und nutze diese auch heute ab und an noch. ...

Humor (lol)

"gimme gimme gimme": Automatischer Test stolpert über Easter Egg im man-Tool

Information von Penny.Cilin vor 3 StundenHumor (lol)5 Kommentare

Interessant, was man so alles als Easter Egg implementiert. Ist schon wieder Ostern? "gimme gimme gimme": Automatischer Test stolpert ...

MikroTik RouterOS

Mikrotik - Lets Encrypt Zertifikate mit MetaROUTER Instanz auf dem Router erzeugen

Anleitung von colinardo vor 18 StundenMikroTik RouterOS8 Kommentare

Einleitung Folgende Anleitung ist aus der Lage heraus entstanden das ein Kunde auf seinem Mikrotik sein Hotspot Captive Portal ...

Sicherheit

Sicherheitslücke in HP-Druckern - Firmware-Updates stehen bereit

Information von BassFishFox vor 19 StundenSicherheit1 Kommentar

Ein weiterer Grund, dass Drucker keinerlei Verbindung nach "auswaerts" haben sollen. Unter Verwendung spezieller Malware können Angreifer aus der ...

Heiß diskutierte Inhalte
Windows Server
RDP macht Server schneller???
Frage von JaniDJWindows Server17 Kommentare

Hallo Community, wir betrieben seit geraumer Zeit diverse virtuelle Maschinen und Server mit Windows Server 2012. Leider haben wir ...

Windows 10
Windows 10 dunkler Bildschirm nach Umfallen
Frage von AkcentWindows 1015 Kommentare

Hallo, habe hier einen Windows 10 Rechner der von einem User umgefallen wurde (Beine übers Knie, an den PC ...

Linux
OpenSource Groupware
Frage von FA-jkaLinux13 Kommentare

Hallo, ich suche eine Groupware als Alternative zum Exchange. Wesentliche Aufgaben sind die Handhabung von E-Mails (persönliche und gemeinsam ...

Windows 10
Bitlocker nach Verschlüsselung nicht mehr aufrufbar!
gelöst Frage von alexlazaWindows 1013 Kommentare

Hallo, ich besitze ein HP ZBook 17 G4 mit einem Windows 10 Pro Betriebssystem. Bei diesem Problem handelt sich, ...