Sida 1 av 1

Nybörjarfråga om att starta program

Postat: 22 nov 2008, 13:36
av Johnny Rosenberg
Jag vill starta programmet unetbootin-linux-281, som jag har rättigheter att köra och som ligger i mappen ~/Eget/Min/Mapp/ (självklart är det en helt annan sökväg, men denna är kortare…). Detta fungerar:

Kod: Markera allt

cd ~/Eget/Min/Mapp/
./unetbootin-linux-281
Jag vill hellre köra direkt från vilken mapp jag än råkar befinna mig i (utan att ändra miljövariabeln PATH):

Kod: Markera allt

$ ./~/Eget/Min/Mapp/unetbootin-linux-281 
bash: ./~/Eget/Min/Mapp/unetbootin-linux-281: Filen eller katalogen finns inte
Har provat hur många varianter som helst, men får felmeddelanden av denna typ. Så länge jag ger en relativ sökväg fungerar det, men då förutsätts ju att jag står i en viss mapp, och poängen var ju att det inte skulle spela någon roll var jag befinner mig.

Jag har tydligen missat något grundläggande här. Vad?

Re: Nybörjarfråga om att starta program

Postat: 22 nov 2008, 14:56
av webaake
Kopiera den eller flytta den till mappen /usr/local/bin/

Re: Nybörjarfråga om att starta program

Postat: 22 nov 2008, 15:07
av tann
eller ge en absolut sökväg som utgår från /

Re: Nybörjarfråga om att starta program

Postat: 22 nov 2008, 16:17
av maths57
Johnny Rosenberg skrev:

Kod: Markera allt

$ ./~/Eget/Min/Mapp/unetbootin-linux-281 
bash: ./~/Eget/Min/Mapp/unetbootin-linux-281: Filen eller katalogen finns inte
Jag tycker det ser konstigt ut i början av sökvägen du anger. Om det är ett skript du ska köra borde det vara så här.

Kod: Markera allt

sh ~/Min/Mapp/unetbootin-linux-281
~/ talar om att det handlar om en mapp som ligger direkt i din hemkatalog. sh anger att det är ett skalskript som ska köras.

Re: Nybörjarfråga om att starta program

Postat: 22 nov 2008, 16:23
av micke_nordin
Du kan även köra skriptet så här:

Kod: Markera allt

/home/ditt_användarnamn/Min/Mapp/unetbootin-linux-281
Alltså utan punkten och med en absolut sökväg, som tann föreslog.

Jag tror att detta är underförutsättning att skriptet inleds med #! /bin/bash på första raden.

/Micke

Re: Nybörjarfråga om att starta program

Postat: 22 nov 2008, 19:19
av Johnny Rosenberg
webaake skrev:Kopiera den eller flytta den till mappen /usr/local/bin/
Det vet jag att man kan göra, men det var inte det jag frågade om…

Förresten, kommer den inte att försvinna då om jag installerar en ny Linuxdistribution, eller om jag installerar om Ubuntu? /home gör jag ju backup på.

Re: Nybörjarfråga om att starta program

Postat: 22 nov 2008, 19:30
av Johnny Rosenberg
maths57 skrev:
Johnny Rosenberg skrev:

Kod: Markera allt

$ ./~/Eget/Min/Mapp/unetbootin-linux-281 
bash: ./~/Eget/Min/Mapp/unetbootin-linux-281: Filen eller katalogen finns inte
Jag tycker det ser konstigt ut i början av sökvägen du anger. Om det är ett skript du ska köra borde det vara så här.

Kod: Markera allt

sh ~/Min/Mapp/unetbootin-linux-281
~/ talar om att det handlar om en mapp som ligger direkt i din hemkatalog. sh anger att det är ett skalskript som ska köras.
unetbootin är inget skript utan ett körbart program, kompilerat och klart. Det används för att få USB-stickor att bete sig som installationsskivor, typ. Man laddar ner en ISO och med hjälp av den gör unetbootin vad som krävs för att man ska kunna använda USB-stickan istället, exempelvis om man vill installera en ny distribution på en Eee eller på en annan maskin som inte har CD/DVD-läsare.

Re: Nybörjarfråga om att starta program

Postat: 22 nov 2008, 19:38
av Johnny Rosenberg
micke_nordin skrev:Du kan även köra skriptet så här:

Kod: Markera allt

/home/ditt_användarnamn/Min/Mapp/unetbootin-linux-281
Alltså utan punkten och med en absolut sökväg, som tann föreslog.

Jag tror att detta är underförutsättning att skriptet inleds med #! /bin/bash på första raden.

/Micke
När jag provar detta får jag inget felmeddelande, men å andra sidan händer inget annat heller. Det ska komma upp en dialogruta, men det enda som händer är att prompten kommer tillbaka i terminalen. Kanske beror på att det är ett program och inte ett skript. Men hur skriver man istället då?

När jag skriver ”terminal” menar jag Program → Tillbehör → Terminal, om nu någon undrade.

Re: Nybörjarfråga om att starta program

Postat: 22 nov 2008, 19:41
av KiviE
Som tidigare föreslagit så borde dessa 3 fungera bra:

Kod: Markera allt

~/Eget/Min/Mapp/unetbootin-linux-281
$HOME/Eget/Min/Mapp/unetbootin-linux-281
/home/dittnamn/Eget/Min/Mapp/unetbootin-linux-281
Annars kan du göra ett alias:

Kod: Markera allt

alias unetbootin-linux-281='$HOME/Eget/Min/Mapp/unetbootin-linux-281'
Och sen bara skriva var du nu än är unetbootin-linux-281

Re: Nybörjarfråga om att starta program

Postat: 22 nov 2008, 19:43
av Konservburk
Johnny Rosenberg skrev:
micke_nordin skrev:

Kod: Markera allt

/home/ditt_användarnamn/Min/Mapp/unetbootin-linux-281
När jag provar detta får jag inget felmeddelande, men å andra sidan händer inget annat heller. Det ska komma upp en dialogruta, men det enda som händer är att prompten kommer tillbaka i terminalen. Kanske beror på att det är ett program och inte ett skript. Men hur skriver man istället då?
Jag gissar att det är programmet som räknar med att startas från "rätt katalog". Du kan försöka så här:

Kod: Markera allt

(cd ~/Min/Mapp/ && exec ./unetbootin-linux-281)

Re: Nybörjarfråga om att starta program

Postat: 22 nov 2008, 20:07
av Johnny Rosenberg
Konservburk skrev:Jag gissar att det är programmet som räknar med att startas från "rätt katalog". Du kan försöka så här:

Kod: Markera allt

(cd ~/Min/Mapp/ && exec ./unetbootin-linux-281)
Tack, det fungerade. Har nu lagt in följande rad i min .bash-aliases (som anropas av .bashrc):

Kod: Markera allt

alias unetbootin='(cd "$HOME/Eget/Nerladdad programvara/GNU Linux/Verktyg/Boot" && exec ./unetbootin-linux-281)'
Funkar kanon. Tack!

Det sköna är att man är kvar i den mapp man var innan man startade det.