2007-04-21, 23:54
#1
Ett shellscript är i princip lite terminalkommandon i en textfil som du senare kör. Här under visar jag hur man kan skapa ett enkelt script. Jag lägger tråden i Övriga-OS eftersom jag tror att folket här är mer intresserade av detta än systemutvecklingsfolket.
-----------------------------------------------------------
Börja med att högerklicka någonstans på skrivbordet och tryck på "Skapa dokument - Ny fil". Öppna filen.
Till att börja med så skriver vi #!/bin/bash högst upp i scriptet.
Efter det så vill vi att scriptet ska säga någonting så vi skriver
echo "Detta är vårt första script"
Nu kommer vårt script att skriva det när scriptet startas. Ett litet steg för scriptet men ett stort steg för scriptaren.
(Om man vill ha mellanrum så skriver man echo "")
Och i script så kan man välja att göra olika saker men jag väljer nu idag att skriva ett script där jag kan välja att starta flera hemsidor. Jag skriver lite kort den siffra man ska skriva in för att komma in på en viss sida
echo "1 -> UbuntuSE"
echo "2 -> UbuntuSE forum"
echo "3 -> blank"
Efter det så skriver jag
read svar
Och det gör jag för att datorn ska snappa upp det som kommer. Nu vet datorn att den ska snappa upp det som skrivs in men den vet inte vad den ska göra med det som skrivs in. Med denna understående kodsnutt så berättar vi för datorn att den ska starta ubuntus hemsida med hjälp av firefox om $svar = 1.
if [ "$svar" = "1" ]; then
firefox http://www.ubuntu-se.org/
Med tanke på att if är om på så Svenska så blir ju allting rätt logiskt, eller hur?
Såhär ser vår kod ut just nu:
#!/bin/bash
echo "Detta är vårt första script"
echo "1 -> UbuntuSE"
echo "2 -> UbuntuSE forum"
echo "3 -> blank"
read svar
if [ "$svar" = "1" ]; then
firefox http://www.ubuntu-se.org/
Vi fortsätter att utveckla och lägger också till de andra sidorna. Men nu använder vi "elif" istället för "if".
Nu ska vi lägga till detta eftersom vi vill ha möjlighet att öppna Ubuntus forum och en blank sida.
elif [ "$svar" = "2" ]; then
firefox http://www.ubuntu-se.org/forum
elif [ "$svar" = "3" ]; then
firefox about:blank
Koden är nu rätt färdigt och det är bara småsaker vi ska lägga till.
En av dessa småsaker vi ska använda oss av är "&" tecknet. Den får kommandona att köras i bakgrunden vilket är bra eftersom skriptet då inte ligger kvar i terminalen och blocker terminalen. (Tack Deepthought).
Vi lägger till & och såhär ser koden ut nu:
#!/bin/bash
echo "Detta är vårt första script"
echo "1 -> UbuntuSE"
echo "2 -> UbuntuSE forum"
echo "3 -> blank"
read svar
if [ "$svar" = "1" ]; then
firefoxhttp://www.ubuntu-se.org/ &
elif [ "$svar" = "2" ]; then
firefox http://www.ubuntu-se.org/forum &
elif [ "$svar" = "3" ]; then
firefox about:blank &
Vi lägger också till
exit
fi
På slutet.
Slutgiltig kod:
#!/bin/bash
echo "Detta är vårt första script"
echo "1 -> UbuntuSE"
echo "2 -> UbuntuSE forum"
echo "3 -> blank"
read svar
if [ "$svar" = "1" ]; then
firefox http://www.ubuntu-se.org/ &
elif [ "$svar" = "2" ]; then
firefox http://www.ubuntu-se.org/forum &
elif [ "$svar" = "3" ]; then
firefox about:blank &
exit
fi
Se så enkelt det var.
Viktigt: För att filen ska kunna köras så skriver du in detta i terminal fönstret:
sudo chmod +x sök/vägen/till/filen. För att sen starta scriptet så cdar du dig fram till mappen där scriptet ligger och skriver in
./scriptnamn. I mitt fall blir det:
cd Desktop
./hej
Små tips :
Om du vill att två kommandon ska köras på samma rad så skriver du kommando && kommando(andra kommandot kommer enbart köras om första lyckas.(Tack acura))
Om du vill infoga kommentarer i skriptet så använd #följt av text.
-------------------------------------------------------
Om du vill ha ett lätt programspråk för att skapa liknande saker så rekommenderar jag Python eller Ruby.
-----------------------------------------------------------
Börja med att högerklicka någonstans på skrivbordet och tryck på "Skapa dokument - Ny fil". Öppna filen.
Till att börja med så skriver vi #!/bin/bash högst upp i scriptet.
Efter det så vill vi att scriptet ska säga någonting så vi skriver
echo "Detta är vårt första script"
Nu kommer vårt script att skriva det när scriptet startas. Ett litet steg för scriptet men ett stort steg för scriptaren.

Och i script så kan man välja att göra olika saker men jag väljer nu idag att skriva ett script där jag kan välja att starta flera hemsidor. Jag skriver lite kort den siffra man ska skriva in för att komma in på en viss sida
echo "1 -> UbuntuSE"
echo "2 -> UbuntuSE forum"
echo "3 -> blank"
Efter det så skriver jag
read svar
Och det gör jag för att datorn ska snappa upp det som kommer. Nu vet datorn att den ska snappa upp det som skrivs in men den vet inte vad den ska göra med det som skrivs in. Med denna understående kodsnutt så berättar vi för datorn att den ska starta ubuntus hemsida med hjälp av firefox om $svar = 1.
if [ "$svar" = "1" ]; then
firefox http://www.ubuntu-se.org/
Med tanke på att if är om på så Svenska så blir ju allting rätt logiskt, eller hur?

Såhär ser vår kod ut just nu:
#!/bin/bash
echo "Detta är vårt första script"
echo "1 -> UbuntuSE"
echo "2 -> UbuntuSE forum"
echo "3 -> blank"
read svar
if [ "$svar" = "1" ]; then
firefox http://www.ubuntu-se.org/
Vi fortsätter att utveckla och lägger också till de andra sidorna. Men nu använder vi "elif" istället för "if".
Nu ska vi lägga till detta eftersom vi vill ha möjlighet att öppna Ubuntus forum och en blank sida.
elif [ "$svar" = "2" ]; then
firefox http://www.ubuntu-se.org/forum
elif [ "$svar" = "3" ]; then
firefox about:blank
Koden är nu rätt färdigt och det är bara småsaker vi ska lägga till.
En av dessa småsaker vi ska använda oss av är "&" tecknet. Den får kommandona att köras i bakgrunden vilket är bra eftersom skriptet då inte ligger kvar i terminalen och blocker terminalen. (Tack Deepthought).
Vi lägger till & och såhär ser koden ut nu:
#!/bin/bash
echo "Detta är vårt första script"
echo "1 -> UbuntuSE"
echo "2 -> UbuntuSE forum"
echo "3 -> blank"
read svar
if [ "$svar" = "1" ]; then
firefoxhttp://www.ubuntu-se.org/ &
elif [ "$svar" = "2" ]; then
firefox http://www.ubuntu-se.org/forum &
elif [ "$svar" = "3" ]; then
firefox about:blank &
Vi lägger också till
exit
fi
På slutet.
Slutgiltig kod:
#!/bin/bash
echo "Detta är vårt första script"
echo "1 -> UbuntuSE"
echo "2 -> UbuntuSE forum"
echo "3 -> blank"
read svar
if [ "$svar" = "1" ]; then
firefox http://www.ubuntu-se.org/ &
elif [ "$svar" = "2" ]; then
firefox http://www.ubuntu-se.org/forum &
elif [ "$svar" = "3" ]; then
firefox about:blank &
exit
fi
Se så enkelt det var.

Viktigt: För att filen ska kunna köras så skriver du in detta i terminal fönstret:
sudo chmod +x sök/vägen/till/filen. För att sen starta scriptet så cdar du dig fram till mappen där scriptet ligger och skriver in
./scriptnamn. I mitt fall blir det:
cd Desktop
./hej
Små tips :
Om du vill att två kommandon ska köras på samma rad så skriver du kommando && kommando(andra kommandot kommer enbart köras om första lyckas.(Tack acura))
Om du vill infoga kommentarer i skriptet så använd #följt av text.
-------------------------------------------------------
Om du vill ha ett lätt programspråk för att skapa liknande saker så rekommenderar jag Python eller Ruby.