Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

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, 1666 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 sqlplus oder Bash Fehler? (7)

Frage von Marabunta zum Thema Batch & Shell ...

Ubuntu
Nregp ereignis für bash-script (3)

Frage von rsadmchef zum Thema Ubuntu ...

Batch & Shell
gelöst Bash Mail senden (7)

Frage von Marabunta zum Thema Batch & Shell ...

Ubuntu
gelöst Ubuntu - Verzeichniswechsel in Shell (7)

Frage von Henere zum Thema Ubuntu ...

Neue Wissensbeiträge
Windows Server

Umstellung SHA 1 auf SHA 2 - Migration der CA von CSP auf KSP

Tipp von Badger zum Thema Windows Server ...

Windows 10

Quato DTP94 unter Windows 10 x64 installieren und verwenden

Anleitung von anteNope zum Thema Windows 10 ...

Windows 10

Win10 1703 und Nutzerkennwörter bei Ersteinrichtung - erstaunliche Erkenntnis

(15)

Erfahrungsbericht von DerWoWusste zum Thema Windows 10 ...

Heiß diskutierte Inhalte
Windows 7
Bluesreens unternehmensweit (18)

Frage von SYS64738 zum Thema Windows 7 ...

Festplatten, SSD, Raid
gelöst Raid-Controller (Areca) Datenverlust trotz R5 (16)

Frage von sebastian2608 zum Thema Festplatten, SSD, Raid ...

Windows Netzwerk
DNS ins mehreren Subnetzen (13)

Frage von joerg zum Thema Windows Netzwerk ...

Windows 10
Programm Installation bei Win 10 Fehlerhaft (12)

Frage von Keineahnungvonnix zum Thema Windows 10 ...