Menu

Čtvrté cvičení (15. 3.)

Materiály

Příklady

Zobrazit řešení
  1. Stáhněte si a zkompilujte program arachnid a zkuste si projít bludiště pomocí kláves hjkl.
    url="http://kam.mff.cuni.cz/~stinovlas/materialy/unix/arachnid.tar.gz"
    curl "$url" | tar xz
    cd arachnid
    make
    ./arachnid
    
  2. Napište skript, který vypíše prvních n řádek ze souboru hlasky.txt a pak tyto řádky smaže. n bude skriptu zadáno jako první parametr na příkazové řádce.
    #!/bin/sh
    head -n$1 hlasky.txt
    tail -n+$1 | tail -n+2 > .tmp
    mv .tmp hlasky.txt
    
  3. Napište skript, který udělá množinový průnik dvou souborů, zadaných jako parametry – vypíše pouze řádky, které se vyskytují v obou souborech.
    #!/bin/sh
    sort -u $1 > /tmp/tempfile
    sort -u $2 >> /tmp/tempfile
    
    sort /tmp/tempfile | uniq -d
    
    rm /tmp/tempfile
    
  4. Napište skript, který vypíše součet dvou čísel zadaných jako argumenty.
  5. #!/bin/sh
    echo $(( $1 + $2 ))
    
  6. Napište skript, který vypíše minumum ze dvou čísel zadaných jako argumenty.
  7. #!/bin/sh
    echo $(( $1 < $2 ? $1 : $2 ))
    
  8. Napište skript, který vytvoří nový soubor zadaného jména, nebo vypíše chybovou hlášku, pokud už existuje.
  9. #!/bin/sh
    ls "$1" && echo "Soubor $1 již existuje." 1>&2
    ls "$1" || touch "$1"
    
    #!/bin/sh
    if [ -e "$1" ]; then
        echo "Soubor $1 již existuje." 1>&2
    else
        touch "$1"
    fi
    
  10. Napište skript, který vypíše 99 bottles of beer, 98 bottles of beer0 bottles of beer.
  11. #!/bin/sh
    for i in $( seq 99 -1 0 ); do
        echo "$i bottles of beer"
    done