Difference between revisions of "Mit første bash shellscript"

From Teknologisk videncenter
Jump to: navigation, search
m
m (Lave script)
 
(9 intermediate revisions by the same user not shown)
Line 1: Line 1:
 +
= Første script =
 
== Hvor skal programmet ligge ==
 
== Hvor skal programmet ligge ==
 
Find ud af hvor ''bash'' søger efter protgrammer
 
Find ud af hvor ''bash'' søger efter protgrammer
Line 5: Line 6:
 
<notice>bruger17</notice>        ttypf    May 26 09:09 (192.168.22.184)         
 
<notice>bruger17</notice>        ttypf    May 26 09:09 (192.168.22.184)         
 
[bruger17@bsd ~]$ <input>echo $PATH</input>
 
[bruger17@bsd ~]$ <input>echo $PATH</input>
/sbin:/bin:/usr/sbin:/usr/bin:/usr/games:/usr/local/sbin:/usr/local/bin:<notice>/home/bruger17/bin</notice>
+
/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/bin:<notice>/home/bruger17/bin</notice>
 
</source>
 
</source>
 
I ovenstående eksempel kan ses at jeg er logget ind som ''bruger17'' og at PATH søger efter programmer i blandt andet ''/home/bruger17/bin''. Derfor opretter jeg biblioteket ''/home/bruger17/bin'' og ligger mine programmer her.
 
I ovenstående eksempel kan ses at jeg er logget ind som ''bruger17'' og at PATH søger efter programmer i blandt andet ''/home/bruger17/bin''. Derfor opretter jeg biblioteket ''/home/bruger17/bin'' og ligger mine programmer her.
 +
 
== Oprettelse af bin bibliotek ==
 
== Oprettelse af bin bibliotek ==
 
Brug ''cd'' for at være sikker på at du er i dit hjemmebibliotek  og ''mkdir'' for oprette biblioteket.
 
Brug ''cd'' for at være sikker på at du er i dit hjemmebibliotek  og ''mkdir'' for oprette biblioteket.
Line 20: Line 22:
 
[bruger17@bsd bin]$ <input>pico world</input>
 
[bruger17@bsd bin]$ <input>pico world</input>
 
</source>
 
</source>
Jeg har ''pico'' editoren i billedet nedenunder. Lav og gem filen med dette indhold. Vær opmærksom på hvor der er afstandstegn og det specielle accenttegn `
+
Jeg har brugt ''pico'' editoren og skrevet scriptet vist nedenunder. Gem filen med dette indhold. Vær opmærksom på hvor der er afstandstegn og det specielle accenttegn '''`'''
 
<source lang="cli">
 
<source lang="cli">
#!/usr/bin/bash
+
#!/bin/bash
 
ANTAL=5
 
ANTAL=5
 
while test $ANTAL -gt 0
 
while test $ANTAL -gt 0
Line 30: Line 32:
 
done
 
done
 
</source>
 
</source>
 +
 
== Ændre rettigheder til program ==
 
== Ændre rettigheder til program ==
 
<source lang="cli">
 
<source lang="cli">
[bruger17@bsd ~]$ <input>chmod +x world</input>
+
[bruger17@bsd bin]$ <input>pwd</input>
 +
/home/bruger17/bin
 +
[bruger17@bsd bin]$ <input>chmod +x world</input>
 
[bruger17@bsd bin]$ <input>world</input>
 
[bruger17@bsd bin]$ <input>world</input>
 
ANTAL indeholder 5
 
ANTAL indeholder 5
Line 40: Line 45:
 
ANTAL indeholder 1
 
ANTAL indeholder 1
 
</source>
 
</source>
{{#css:
+
 
      
+
= Leg med logintid =
    pre {   font-weight: bold; font-size: 120%; color: #00FF00; background: black; margin: 10px 50px;}
+
Eksempel med ''nestede'' if'er, altså inden i hinanden.
}}
+
<source lang="cli">
 +
#!/usr/bin/bash
 +
HOUR=`date +%H`
 +
MINUTE=`date +%M`
 +
 
 +
if test $HOUR -lt 7
 +
then
 +
  echo "Gå i seng"
 +
else
 +
  if test $HOUR -lt 8
 +
  then
 +
     echo "Stræber, har du husket et rødt æble"
 +
   fi
 +
fi
 +
echo "Have a nice day :-)"
 +
</source>
 +
If'er efter hinanden. Måske lidt mere overskueligt.
 +
<source lang="cli">
 +
#!/usr/bin/bash
 +
HOUR=`date +%H`
 +
if test $HOUR -lt 7
 +
then
 +
  echo "Gå i seng"
 +
  exit
 +
fi
 +
 
 +
if test $HOUR -lt 8
 +
then
 +
  echo "Stræber"
 +
  exit
 +
fi
 +
 
 +
if test $HOUR -lt 10
 +
then
 +
  echo "God morgen"
 +
  exit
 +
fi
 +
 
 +
if test $HOUR -lt 12
 +
then
 +
  echo "lidt sent på den, hwa"
 +
  exit
 +
fi
 +
</source>
 +
{{Source cli}}
 +
[[Category:UNIX]][[Category:FreeBSD]][[Category:Linux]]

Latest revision as of 10:09, 24 January 2012

Første script

Hvor skal programmet ligge

Find ud af hvor bash søger efter protgrammer

[bruger17@bsd ~]$ <input>who am i</input>
<notice>bruger17</notice>        ttypf    May 26 09:09 (192.168.22.184)        
[bruger17@bsd ~]$ <input>echo $PATH</input>
/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/bin:<notice>/home/bruger17/bin</notice>

I ovenstående eksempel kan ses at jeg er logget ind som bruger17 og at PATH søger efter programmer i blandt andet /home/bruger17/bin. Derfor opretter jeg biblioteket /home/bruger17/bin og ligger mine programmer her.

Oprettelse af bin bibliotek

Brug cd for at være sikker på at du er i dit hjemmebibliotek og mkdir for oprette biblioteket.

[bruger17@bsd ~]$ <input>cd</input>
[bruger17@bsd ~]$ <input>mkdir bin</input>

Lave script

Gå ind i dit bin bibliotek og start din yngligseditor (vi,nano,pico,mcedit,emacs)

[bruger17@bsd ~]$ <input>cd bin</input>
[bruger17@bsd bin]$ <input>pico world</input>

Jeg har brugt pico editoren og skrevet scriptet vist nedenunder. Gem filen med dette indhold. Vær opmærksom på hvor der er afstandstegn og det specielle accenttegn `

#!/bin/bash
ANTAL=5
while test $ANTAL -gt 0
do
  echo "ANTAL indeholder $ANTAL"
  ANTAL=`expr $ANTAL - 1`
done

Ændre rettigheder til program

[bruger17@bsd bin]$ <input>pwd</input>
/home/bruger17/bin
[bruger17@bsd bin]$ <input>chmod +x world</input>
[bruger17@bsd bin]$ <input>world</input>
ANTAL indeholder 5
ANTAL indeholder 4
ANTAL indeholder 3
ANTAL indeholder 2
ANTAL indeholder 1

Leg med logintid

Eksempel med nestede if'er, altså inden i hinanden.

#!/usr/bin/bash
HOUR=`date +%H`
MINUTE=`date +%M`

if test $HOUR -lt 7
then
  echo "Gå i seng"
else
  if test $HOUR -lt 8
  then
    echo "Stræber, har du husket et rødt æble"
  fi
fi
echo "Have a nice day :-)"

If'er efter hinanden. Måske lidt mere overskueligt.

#!/usr/bin/bash
HOUR=`date +%H`
if test $HOUR -lt 7
then
  echo "Gå i seng"
  exit
fi

if test $HOUR -lt 8
then
  echo "Stræber"
  exit
fi

if test $HOUR -lt 10
then
  echo "God morgen"
  exit
fi

if test $HOUR -lt 12
then
  echo "lidt sent på den, hwa"
  exit
fi