Page 1 of 1

*nix oefeningen 3

Posted: Wed Dec 21, 2005 10:04 pm
by Yo_rik
Ik heb ze allemaal 8):

Code: Select all

#!/bin/bash
#reeks3: oef1
#toon een lijst van alle loginnamen met awk
awk -F: '{print $1}' /etc/passwd

Code: Select all

#!/bin/bash
#reeks3: oef2
#maak een file met nr: naam uit tel.txt met awk
awk -F: '{print $2 ": " $1}' tel.txt >tel2.txt

Code: Select all

#!/bin/bash
#reeks3: oef3
#toon login, home directory en shell gescheiden door tabs met awk
awk -F: '{print $1 "\t" $6 "\t" $7}' /etc/passwd

Code: Select all

#!/bin/bash
#reeks3: oef4
#lees 2 getallen in en druk af wat het grootste is
if (($1 < $2))
then
	echo $2 is het grootste getal
else
	echo $1 is het grootste getal
fi

Code: Select all

#!/bin/bash
#reeks3: oef5
#druk 2 stringparameters gesorteerd af
if [[ $1 < $2 ]]
then
	echo $1
	echo $2
else
	echo $2
	echo $1
fi 

Code: Select all

#!/bin/bash
#reeks3: oef6
#zeg of het meegegeven woord met een klinker begint
if [ `echo $1 | grep -c ^[AEOUIaeoui]` = 1 ]
then
	echo Het woord begint met een klinker.
else
	echo Het woord begint niet met een klinker.
fi

Code: Select all

#!/bin/bash
#reeks3: oef7
#controleer of de meegegeven filenaam leesbaar is en map of bestand, druk de inhoud af
if [[ -r $1 ]]
then
	if [[ -f $1 ]]
	then
		cat $1
	elif [[ -d $1 ]]
	then
		ls $1
	fi
fi

Code: Select all

#!/bin/bash
#reeks3: oef8
#voer de basisbewerkingen uit op 2 meegegeven getallen (+ - * / %)
echo "$1 + $2 = $(($1 + $2))"
echo "$1 - $2 = $(($1 - $2))"
echo "$1 * $2 = $(($1 * $2))"
if [ $2 != 0 ]
then
	echo "$1 / $2 = $(($1 / $2))"
	echo "$1 % $2 = $(($1 % $2))"
fi

Code: Select all

#!/bin/bash
#reeks3: oef9
#vermeld voor elke ingelogde gebruiker login, username en homedir
for USER in `who | cut -d" " -f1`
do
        echo Loginname: $USER
        echo Username: `grep $USER /etc/passwd | cut -d: -f5 | cut -d, -f1 | tr . " "`
        echo Home dir: `grep $USER /etc/passwd | cut -d: -f6`
        echo
done

Code: Select all

#!/bin/bash
#reeks3: oef10
#geef alle loginnamen met commentaarveld, vervang INB door Informatica Bachelor
cut -d: -f1,5 /etc/passwd | sed -e 's/INB/Informatica Bachelor/g'

Posted: Wed Dec 21, 2005 10:34 pm
by Shinta
mooi zo ;) khad enkel de voorlaatste niet

Posted: Mon Dec 26, 2005 2:56 pm
by Shinta
uw oefening me die files en directories klopt misschien wel in sommige gevallen maar vaak ook niet, je controleert niet of ze leesbaar zijn en het is niet echt de manier die de assistent waarschijnlijkin gedachten had.
Ik hebbet zo gedaan (dank aan Nick).

Code: Select all

#!/usr/bin/bash

if [[ -fr $1 ]]
then
	echo "`cat $1`" 
fi

if [[ -dr $1 ]]
then
	echo "`ls $1`"
fi

Posted: Thu Dec 29, 2005 12:36 pm
by Yo_rik
Oefening 7 is aangepast, maar ik doe de controle of het leesbaar is apart.
Als ik het niet apart doe geeft hij nog altijd permission denied bij dingen die ik niet kan lezen. --> Hij controleert blijkbaar alleen de eerste voorwaarde die achter het minteken staat :?.