Re-hei,
Et godt spørsmål.
1) $
./skript1.sh I denne metoden vil gjeldende shellet (skallet) undersøke den første linjen i skriptet. I de eksemplene gitt av Abbath ser den første linjen slik ut:
#!/bin/bash "!#" kalles for shebang. Ref.
http://en.wikipedia.org/wiki/Shebang_(Unix)
Shebang sier altså hvilken tolker/kompilator/eller program skal kjøre koden.
Her er noen eksempler på bruken av shebang for å kjøre skript.
#!/bin/bash
#!/usr/bin/php
#!/usr/bin/env python
#! /usr/bin/env runhaskell
#!/usr/bin/env ruby
Jeg mener at shebang skal alltid stå som første eksekverbar linje i koden.
Og kjøremekanismen antar at koden er shell/bashskript hvis shebang mangler.
Den
env metoden er veldig smart fordi du behøver ikke vite hvor f.eks Python tolkeren ligger. Env tar seg av det.
#!/usr/bin/env xxx
-------------
Følgende shebang linja (bash -x) er veldig nyttig hvis du ønsker å debugge et shellskript.
#!/bin/bash -x
Den vil outputte info om variabler og andre ting mens skriptet kjører. Jeg benytter bash -x ... bl.a i
Gscreendump for å kjøre bildebehandlingsplugins/skript i debug-modus.
Den tilsvarer kommandoen
$
bash -x skript1.sh -------------
2) Den andre metoden er mye enklere.
$
bash skript.sh Du starter et nytt shell (skall) med bash og navnet på skript sendes inn som argument. Her er det ingen tvivel om hvem og hva kjøres.
--------------
Kan jeg lage bash-script for å ta backup av F.eks /home?
Absolutt. Det finnes ikke noe bedre programmeringsspråk for den oppgaven enn bash/sh. Søk for ordene:
backup skript i dette forumet eller Google for:
shell script backup