Vad är det för fel i detta scirpt?

Tråden skapades och har fått 10 svar. Det senaste inlägget skrevs .
1

Jag får ett error i detta script. Det är en del av ett startsciprt på en OS X Server.
Line 17 protesterar den emot. Unexpected token '}'

#!/bin/bash

. /etc/rc.common

StartService ()
{
        ConsoleMessage "Starting Hansa"
        /Applications/HansaWorld41ServOSX/HansaOSXServer
}

StopService ()
{
        ConsoleMessage "Stopping Hansa"
        for PID in `ps -aux | grep Hansa | grep -v grep | awk '{print $2}'; do
        kill -2 $PID
}

RestartService () {StopService; StartService;}

RunService "$1"

done

Jag misstänker att scriptet avslutar stop funktionen när den ser } efter awk och sedan kommer den riktiga } och då blir den förvirrad.
Hur löser jag detta?

Kolla ` (fnutten) framför ps. Jag ser inget slut på den.

Ciryon

Ahhhh ser man på! Dessa små små tecken som ack ack är så viktiga!
Ska testa igen...

  • Medlem
  • International user
  • 2004-07-16 10:36

Tips: Använd konstruktionen '$(command)' för command substitution istället för '`' (bakfnuttar). Enklare att skriva och läsa nestlade (heter det så?) kommandon. Dessutom numer POSIX-standard.

'$(ps -aux | grep Hansa | grep -v grep | awk '{print $2})' eller?

  • Medlem
  • International user
  • 2004-07-16 10:49

Ja, ser riktigt ut. Förutom en ' ' ' som saknas i awk komandot.

Så här då?

StopService ()
{
        ConsoleMessage "Stopping Hansa"
        PID = '$(ps -aux | grep Hansa | grep -v grep | awk '{print $2}')'
        kill -2 $PID
}
  • Medlem
  • International user
  • 2004-07-16 11:41

Nej, så här:

PID=$(ps -aux | grep Hansa | grep -v grep | awk '{print $2}')

fnuttar och whitspacecharacters är viktiga för shellet.

Okej!
Tack igen!

  • Medlem
  • Stockholm
  • 2004-07-16 18:26

killall Hansa

/glemme

Det var för lätt.

1
Bevaka tråden