U bent hier » http://www.goudappel.org/ onderwijs/ informatica/ bash_script.php
Goede systeembeheerders zijn lui, gru-we-lijk lui.
Als ze den klusje vaker moeten uitvoeren zullen ze een manier verzinnen om dit te automatiseren.
Veel klusjes bestaan uit het uitvoeren van reeksen linux comando's, en ook die kun je automatiseren.
In een BASH script, dat is een aaneenschakeling van commando's.

Je hebt geleerd om een gebruiker aan te maken en de rechten in te stellen, dat is leuk voor een gebruiker maar als je aan het begin van een schooljaar 250 nieuwe leerlingen moet aanmaken ben je er gauw flauw van.

We gaan een script maken dat alle commando's in een keer verwerkt, met wat aanpassingen kun je dit script gebruiken om een heel tekstbestand met namen om te zetten in gebruikers.

Programmeren is het opsplitsen van een probleem in kleine stukjes:
Elk bash script begint met een shebang het pad naar de scriptinterpreter (#!/bin/bash)

  1. Als er geen parameters zijn of help of ? dan een gebruiksaanwijzing van het script tonen.
  2. Zorg dat je root privileges hebt
  3. Kijk of de gebruiker al bestaat (als dat zo is dan bestaat de home-directory met die naam
  4. Maak de gebruiker aan
  5. Geef een wachtwoord (welkom)
  6. Het wachtwoord is beperkt geldig (30 dagen)
  7. In de home-directorie leg je een briefje (leesmij.txt)
  8. Hierin staan een welkomstwoordje en instructies hoe je een wachtwoord moet wijzigen. en wat je moet doen als je je wachtwoord vergeten bent.
Elk van deze opdrachten kun je op de commandline uitvoeren, doe dat en bewaar de commandline in een tekstbestand.
De gebruikersnaam kun je al variabele op de commndline van je script meegeven.

maak het volgende script: sla het op als maakjoezer.sh

#!/bin/bash
echo "De parameter was: $1";

voer het uit door op de commandline sh maakjoezer.sh flip in te typen.

$1 is dus de parameter die je verder kunt gebruiken in het script.

we breiden het script uit....
na de if komt een [ dat is een afkorting van het commando test (zie man test voor alle opties)
de optie -o betekent gewoon OF
dus als er geen parameter is OF de parameter is ? OF help, dan toon je een ebruiksaanwijzing, andders gaat het script verder.

#!/bin/bash
echo "De naam is: $1"
if [ "$1" = "" -o "$1" = "?" -o "$1" = "help" ]; then
echo "gebruiksaanwijzing"
read naam
else
echo "ga door"
fi

#!/bin/bash

# Test of de user root privileges heeft
whoami=`/usr/bin/whoami`
if [  != 'root' ]; then
echo 'U moet root zijn om nieuwe gebruikers toe te voegen'
exit 1
fi

if [ '$1' = '' -o '$1' = '?' -o '$1' = 'help' ]; then
echo 'gebruiksaanwijzing'
else # geen gebruiksaanwijzing nodig

if [ -e /home/$1 ]; then 
echo '$1 bestaat al op dit systeem'
else # user bestaat nog niet
# user aanmaken
adduser -m $1 -p welkom
# wachtwoord en rechten instellen
passwd -x 30 -w 10 $1
echo 'user $1 is aangemaakt'
# ga naar de user dir
cd /home/$1
# maak leesmij.txt
touch leesmij.txt
# zet de tekst in het bestand
echo '
Welkom op dit systeem user $1
Uw wachtwoord is welkom
binnen 30 dagen moet dit wachtwoord worden veranderd
dit kunt u doen door passwd in te typen op de commandline
enz. enz.
' > leesmij.txt
fi # user bestaat?

fi # gebruiksaanwijzing?