Vinnaren i pepparkakshustävlingen!
2007-09-09, 15:28
  #1
Medlem
kongolasse12s avatar
Hejsan håller på att knåpa med ett init script för att starta uTorrent

argumenten finns i en variabel som ser ut som följande:
DAEMON_ARGS="/root/.wine/drive_c/Program\ Files/uTorrent/uTorrent.exe"

men när jag kör scriptet får jag följande fel:
wine: cannot find '/root/.wine/drive_c/Program\'
Wine failed with return code 2

Felet är ju alltså någonstans i variabel värdet, men hur ska ja skriva för att det ska fungera korrekt?

Har aldrig programmerat shellscripts förut. Tacksam för hjälp!
Citera
2007-09-09, 15:38
  #2
Medlem
blueCommands avatar
Citat:
Ursprungligen postat av kongolasse12
Hejsan håller på att knåpa med ett init script för att starta uTorrent

argumenten finns i en variabel som ser ut som följande:
DAEMON_ARGS="/root/.wine/drive_c/Program\ Files/uTorrent/uTorrent.exe"

men när jag kör scriptet får jag följande fel:
wine: cannot find '/root/.wine/drive_c/Program\'
Wine failed with return code 2

Felet är ju alltså någonstans i variabel värdet, men hur ska ja skriva för att det ska fungera korrekt?

Har aldrig programmerat shellscripts förut. Tacksam för hjälp!

Ändra
Kod:
DAEMON_ARGS="/root/.wine/drive_c/Program\ Files/uTorrent/uTorrent.exe"
till
Kod:
DAEMON_ARGS="/root/.wine/drive_c/Program Files/uTorrent/uTorrent.exe"

Du behöver inte escape:a mellanslag när du använder citat-tecken.

EDIT: Förutsatt att du använder något i still med:
Citat:
wine "$DAEMON_ARGS"
Citera
2007-09-09, 16:11
  #3
Medlem
kongolasse12s avatar
Blir samma fel när jag kör utan escapat med . Använder skeleton scriptet och modifierar det men det blir nog att skriva om hela skiten från början. Blir smidigast ändå eftersom att jag måste dra igång en vnc xserver och sätta $DISPLAY variabeln med samma script.

Men tack ändå.
Citera
2007-09-09, 16:25
  #4
Medlem
blueCommands avatar
Citat:
Ursprungligen postat av kongolasse12
Blir samma fel när jag kör utan escapat med . Använder skeleton scriptet och modifierar det men det blir nog att skriva om hela skiten från början. Blir smidigast ändå eftersom att jag måste dra igång en vnc xserver och sätta $DISPLAY variabeln med samma script.

Men tack ändå.

Tja, du kan ju alltid symlänka /root/Programs till /root/.wine/drive_c/Program Files/ och sedan köra med /root/Programs/uTorrent/uTorrent.exe om det är nu mellanslaget som härjar.
Citera
2007-09-09, 21:16
  #5
Medlem
Som blueCommand nämnde, måste du köra:
Kod:
wine "$DAEMON_ARGS"
Om du inte använder citattecken kommer strängen delas upp i separata argument vid mellanslag, tab, eller newline (eller mer korrekt, alla tecken som finns i $IFS, men de jag nämnde är default).

T.ex om $DAEMON_ARGS är satt till "a b" så får wine 2 argument: "a" och "b", men om du anväder citattecken runt variabelnamnet så får den bara ett argument: "a b".


Gäller bara bourne-shell (bash) och kompatibla...
Citera

Stöd Flashback

Flashback finansieras genom donationer från våra medlemmar och besökare. Det är med hjälp av dig vi kan fortsätta erbjuda en fri samhällsdebatt. Tack för ditt stöd!

Stöd Flashback