Göm meny

Skript

I en Unix-miljö är ett skript en textfil som har följande egenskaper:

  • filen är exekverbar
  • den första raden i filen börjar med tecknena #! följt av sökvägen till det programsom ska användas för att tolka resten av textfilen

Shell-skript / skalskript

Ett shell-skript innehåller skalkommandon. Den första raden behöver därför peka ut vilket skal som ska användas. Nedanstående rad använder det skal som är förinställt för användaren:

#!/bin/sh

Nedanstående använder explicit skalet bash:

#!/bin/bash

Den vanligaste filändelsen för ett shellskript är .sh. Filändelsen har dock ingen påverkan på skriptets funktionalitet.

Köra ett shell-skript

För att köra ett shell-skript, dvs en fil som uppfyller alla villkor för ett skript och refererar till ett skalprogram i sin första rad, skriver vi bara dess sökväg i terminalen. Om vi står i samma katalog som shell-skriptet skript.sh skriver vi

$ ./skript.sh

Om skriptet ligger i en annan katalog kan vi självklart antingen ange den relativa eller den absoluta sökvägen till skriptet.

(Om du glömt bort vad det är för skillnad på en relativ sökväg och en absolut sökväg bör du repetera det.)

Python-skript

Ett pythonskript är ett skript som istället för att använda ett skalprogram för att köra textfilens innehåll använder en pythontolk. Detta betyder att den första raden i ett pythonskript behöver peka ut sökvägen till en pythontolk, t.ex.:

#!/usr/bin/python3

Ovanstående sökväg är fungerar dock inte om vi vill använda oss av en virtuell miljö eftersom ovanstående sökväg pekar explicit ut den pythontolk för Python 3 som är installerat på systemnivå.

Istället använder vi följande rad:

#!/usr/bin/env python3

Raden ovan använder programmet env för att ta fram den miljö som användaren har just nu och använder den för att hitta den version av programmet python3 som kommer först enligt den gällande miljön.

Köra ett pythonskript

Vi kör ett pythonskript på precis samma sätt som vi kör vilket skript som helst, d.v.s. att vi skriver dess sökväg i terminalen.

Argument till pythonskript

Vi vill ofta skicka argument till ett skript. För att ett pythonskript ska kunna få reda på vilka argument som skickats till den använder vi oss av variabeln argv i modulen sys. Argumenten är tillgängliga som en lista där det första elementet är kommandot som körts, följt av varje argument som ett separat element i listan.

Nedastående pythonkod skriver ut det första “riktiga” argumentet:

import sys

print(sys.argv[1])

Sidansvarig: Jody Foo
Senast uppdaterad: 2019-07-03