Problem med shell script

Diskuter dine og andres prosjekter. Alt fra Widgets til programmer.

Problem med shell script

Innleggav tjodolv » ons 15.08.2007 1:47

Hei. Jeg tenkte å kjøre en såkalt dual-box av World of Warcraft, og for å få til det må man enten ha to separate kopier av spillet installert, eller bare kopiere filene som endres mens man spiller. Jeg tenkte å gjøre det siste for å spare plass, etter veiledning fra det amerikanske wow-forumet. Her kommer problemet mitt. Følgende script kommer fra WoW Mac Tech Support forumet:
Kode: Merk alt
#!/bin/sh
p1="/Applications/World of Warcraft"
p2=$p1/WoWCopy
mkdir "$p2"
ln -s "$p1/Data" "$p2/Data"
cp "$p1/realmlist.wtf" "$p2/realmlist.wtf"
ditto -X "$p1/World of Warcraft.app" "$p2/World of Warcraft.app"

Copy/paste those 7 simple lines into a new TextEdit doc, and then save the file in your home directory as "wowcopy.sh", i.e. /Users/YourName/wowcopy.sh should be the path to the script document.

Open Terminal and type the following two commands:
chmod +x ~/wowcopy.sh
~/wowcopy.sh


Når jeg utfører siste kommandoen det får jeg feilmeldingen:
Kode: Merk alt
: No such file or directory

Jeg puslet litt rundt i Terminal og fant ut at følgende gir en likende feilmelding:
Kode: Merk alt
cd /Applications/World of Warcraft
-bash: cd: /Applications/World: No such file or directory

Det later til at det er mellomrommet som er problemet her kanskje? Eventuelt noe annet, men uansett: Jeg trenger litt hjelp her :)

Jeg kan sikkert gjøre det ved å kopiere det som må til manuelt, men når jeg først var i gang med denne scriptingen vil jeg så gjerne forstå..... (:)

Brukerens avatar
medlem i 209 måneder
 

Innleggav Henrik Lied » ons 15.08.2007 1:52

Kode: Merk alt
#!/bin/sh
p1="/Applications/World\ of\ Warcraft"
p2=$p1/WoWCopy
mkdir "$p2"
ln -s "$p1/Data" "$p2/Data"
cp "$p1/realmlist.wtf" "$p2/realmlist.wtf"
ditto -X "$p1/World\ of\ Warcraft.app" "$p2/World\ of\ Warcraft.app"

Prøv den, du.

Brukerens avatar
medlem i 215 måneder
 

Innleggav tjodolv » ons 15.08.2007 15:25

Funka fremdeles ikke... Gjorde det manuelt jeg, men lurer fremdeles på hva som var galt..?

Brukerens avatar
medlem i 209 måneder
 

Innleggav p0ker » ons 15.08.2007 15:54

Må støtte Henrik Lied, den feilmeldingen du fikk tidligere, skulle bli fikset av de forandringene han gjorde .... Fikk du forsatt samme feilmeldinge når du kjørte det nå? Nå sitter jeg ikke hjemme, så kan ikke sjekke min egen mac, men ligger Application katalogen på roten? Har du engelsk OS X?

Brukerens avatar
medlem i 208 måneder
 

Re: Problem med shell script

Innleggav tjodolv » ons 18.06.2008 19:10

Jeg trekker denne frem på nytt...

Forrige gang jeg forsøkte dette ga jeg opp, og kort tid etter "sluttet" jeg å spille WoW. Nå har jeg begynt å spille litt igjen, og lurte på å Dual-Boxe en gang til. Jeg kommer nå til samme problemstilling som tidligere. Helt spesifikt skjer dette: (jeg får kjørt chmod +x, men ikke kjørt selve scriptet)
Kode: Merk alt
mbp:~ fredrik$ ls
Desktop      Downloads   Movies      Pictures   Sites
Documents   Library      Music      Public      wowcopy.sh
mbp:~ fredrik$ ~/wowcopy.sh
: No such file or directory
mbp:~ fredrik$ wowcopy.sh
-bash: wowcopy.sh: command not found
mbp:~ fredrik$

Og det skjer uavhengig om jeg har escapet mellomrommene i scriptet som er nevnt over her eller ikke. WoW ligger der det skal, i /Applications/World of Warcraft, og det ser ellers ut til at alt er i sin skjønneste orden (men det aner meg jo at noe ikke stemmer...)
Noen som har noen fler forslag?

Brukerens avatar
medlem i 209 måneder
 

Re: Problem med shell script

Innleggav jebreimo » tor 19.06.2008 11:01

Dette løser ikke problemet, men vil forhåpentligvis hjelpe deg å finne ut hvor det skjer:

i stedet for å starte scriptet med
Kode: Merk alt
~/wowcopy.sh

prøv
Kode: Merk alt
sh -v ~/wowcopy.sh

Dette fører til at hver linje i scriptet blir vist i Terminal-vinduet før den utføres, og dermed vil du se hvor det feiler.
medlem i 211 måneder
 

Re: Problem med shell script

Innleggav tjodolv » tor 19.06.2008 12:21

Okei... Da skjer følgende:
Kode: Merk alt
mbp:~ fredrik$ sh -v ~/wowcopy.sh
#!/bin/sh
p1="/Applications/World of Warcraft"
: command not foundopy.sh: line 2:
p2=$p1/WoWCopy
: command not foundopy.sh: line 3:
mkdir "$p2"
mkdir: .: No such file or directory
mkdir: \r: File exists
ln -s "$p1/Data" "$p2/Data"
ln: \r/Data: File exists
ln: \r/Data: File exists
cp "$p1/realmlist.wtf" "$p2/realmlist.wtf"
cp: /realmlist.wtf: No such file or directory
cp: /realmlist.wtf: No such file or directory
ditto -X "$p1/World of Warcraft.app" "$p2/World of Warcraft.app"
ditto: can't get real path for source
ln -s "$p1/Interface" "$p2/Interface"
ln: /Interface: File exists
mbp:~ fredrik$

Og dersom jeg escaper mellomrommene:
Kode: Merk alt
#!/bin/sh
p1="/Applications/World\ of\ Warcraft"
p2=$p1/WoWCopy
mkdir "$p2"
mkdir: /Applications/World\ of\ Warcraft\r: No such file or directory
ln -s "$p1/Data" "$p2/Data"
ln: /Applications/World\ of\ Warcraft\r/WoWCopy\r/Data\r: No such file or directory
cp "$p1/realmlist.wtf" "$p2/realmlist.wtf"
cp: /Applications/World\ of\ Warcraft\r/realmlist.wtf: No such file or directory
ditto -X "$p1/World\ of\ Warcraft.app" "$p2/World\ of\ Warcraft.app"
ditto: can't get real path for source
ln -s "$p1/Interface" "$p2/Interface"
ln: /Applications/World\ of\ Warcraft\r/WoWCopy\r/Interface: No such file or directory
mbp:~ fredrik$

Jeg ser det legges til \r en del steder her, og det er vel linjeskift eller noe slikt..? Må jeg rett og slett endre tegnsettet til scriptet? I så fall til hva (nå er det UTF-8)?

Brukerens avatar
medlem i 209 måneder
 

Re: Problem med shell script

Innleggav jebreimo » tor 19.06.2008 13:58

\r benyttes som linjeskift-tegn i tekstfiler i Windows (mer presist: OS X benytter "\n" som linheskift, Windows benytter "\r\n") og har tydeligvis lurt seg med når du har klippet scriptet ut fra nettleseren eller hvor du har funnet det.

Dette har ingenting med UTF-8 å gjøre, hvis du har en teksteditor som lar deg velge mellom Windows- og Unix/OS X-linjeskift i lagringsdialogen eller et annet sted så løser du problemet der. Ellers finnes det sikkert dusinvis av kommandolinjeverktøy som fikser dette.

Jeg har uheldigvis ikke en Mac tilgjengelig akkurat nå så jeg får ikke testet dette selv, men denne tråden på macosxhints.com gir deg forhåpentlig det du trenger.
medlem i 211 måneder
 

Re: Problem med shell script

Innleggav tjodolv » tor 19.06.2008 15:29

Ahaaaaa..... Dette visste jeg jo egentlig om, men klarte ikke å koble det sammen... Hadde satt line endings til CRLF og ikke bare LF i TextMate... :-[
Takk for hjelpen uansett, nå funka det :)

Brukerens avatar
medlem i 209 måneder
 


Returner til Utvikling på Mac



Hvem er i Forumene

Registrerte brukere: Google [Bot]