[CS] *nix oefeningen 3

Forum van 1ste Bachelor Informatica.

Moderator: Praesidium

User avatar
Yo_rik
Posts: 69

*nix oefeningen 3

Post#1 » Wed Dec 21, 2005 10:04 pm

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'
Last edited by Yo_rik on Thu Dec 29, 2005 11:24 pm, edited 2 times in total.

User avatar
Shinta
WOZ
Posts: 1122

Post#2 » Wed Dec 21, 2005 10:34 pm

mooi zo ;) khad enkel de voorlaatste niet

User avatar
Shinta
WOZ
Posts: 1122

Post#3 » Mon Dec 26, 2005 2:56 pm

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

User avatar
Yo_rik
Posts: 69

Post#4 » Thu Dec 29, 2005 12:36 pm

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 :?.

Return to “1ste Bachelor”

Who is online

Users browsing this forum: No registered users and 6 guests

cron