Zápočtové úlohy

Úloha 14

Vygeneruj v shellu tabulku malé násobilky použitím cyklů či expanze.

skript

for i in 1 2 3 4 5 6 7 8 9 10
do for j in 1 2 3 4 5 6 7 8 9 10
do echo -n -e '\t'$[$i*$j]
done
echo
done

Pro dosažení tabulky jsem použil dvojitého cyklu, který popořadě násobí mezi sebou čísla. Přepínač -n v třetím řádku zajistí, aby se čísla vypisovala do řádku, přepínač -e zapne interpretování znaků uvozených zpětným lomítkem a tím můžeme ppoužít '\t' pro vodorovný tabulátor. Echo v pátém řádku je kvůli novému řádku.

Úloha 26

Napiš skript, který vypíše "Volno!" a skončí, když zátěž linuxového systému (load) klesne pod 0.1. Skript sám nesmí příliš zatěžovat systém.

skript

l=`uptime | awk {'print $9'} | sed -s 's/,//' | sed -s 's/\.//'`
while [ "$l" -ge "10" ]
do
sleep 2
l=`uptime | awk {'print $9'} | sed -s 's/,//' | sed -s 's/\.//'`
done
echo 'Volno!'

Hodnota load se vypisuje pomocí uptime. Pomocí awk získám devátý řetězec z uptime, který nám vyjadřuje průměrnou zátěž systému za posledních 5 minut. Protože je tento žetězec zakončen čárkou, tak jsem ji pomocí sed odebral. Je ale třeba odebrat také tečku, protože bash nepracuje s desetinnými čísly. Tím získám celé číslo, které se načte do proměnné l, která se v cyklu s podmínkou aktualizuje a jakmile je podmínka splněná, tak cyklus skončí.