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, 1774 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

Shell-Skript - Syntax error: Unterminated quoted string

gelöst Frage von newit1Batch & Shell12 Kommentare

Hallo Ich schreibe ein Skript das eine CSV-Datei in eine mySQL Datenbank schieben soll. Bekomme nach start des Skrips ...

Neue Wissensbeiträge
Humor (lol)
Preisvertipper
Information von Dilbert-MD vor 22 StundenHumor (lol)6 Kommentare

Moin! weil heute Freitag ist, zeige ich Euch den Preisvertipper der Woche: vergesst den Acer Predator 21x, der ist ...

Windows Update
Sicherheitsupdate für SQL Server 2014 SP3
Information von sabines vor 2 TagenWindows Update2 Kommentare

Für den SQL Server 2014 existiert ein Sicherheitsupdate. Laut KB Artikel wird es als CU3 angezeigt: Server 2014 SP3 ...

Backup

Veeam Agent für MS Windows - neue Version verfügbar (bedingt jedoch offenbar .NET Framework 4.6)

Information von VGem-e vor 3 TagenBackup1 Kommentar

Moin Kollegen, einer unserer Server zeigte grad an, dass für o.g. Software ein Update verfügbar ist. Ob ein evtl. ...

Python

Sie meinen es ja nur gut - Microsoft hilft python-Entwicklern auf unnachahmliche Weise

Information von DerWoWusste vor 4 TagenPython2 Kommentare

Stellt Euch vor, Ihr nutzt python unter Windows 10 und skriptet damit regelmäßig Dinge. Nach dem Update auf Windows ...

Heiß diskutierte Inhalte
Windows Update
WSUS - erforderlich Updates
Frage von emeriksWindows Update24 Kommentare

Hi, ein gängiges Verfahren, welche Updates man am WSUS-Server genehmigen soll und welche nicht, beruft sich darauf, dass man ...

Netzwerkgrundlagen
Neue Serverumgebung von 0 aufbauen
Frage von JacareNetzwerkgrundlagen20 Kommentare

Hallo zusammen, ich bin noch nicht lange hier und weiß nicht, ob meine Frage daher etwas ungewöhnlich ist. Ich ...

Off Topic
Installationskosten Verkabelung
Frage von Xaero1982Off Topic14 Kommentare

Moin Zusammen, ich bräuchte mal ein paar Meinungen, weil ich mir da gerade echt nicht ganz sicher bin. Ich ...

Debian
Alle Verbindungen bis auf eine IP Adresse blockieren
Frage von BananenmeisterDebian13 Kommentare

Hallo Zusammen, Ich habe einen Hyper-V Server auf dem ein debian (ohne desktop) läuft. Dort drauf ist ein Webserver ...