BASH — Skripty #
Osnova cvičení #
- domácí úkol
- manipulace s proměnnými
- vstupní argumenty
- pole
Domácí úkol #
- Zadání prvního domácího úkolu
- Čas na vypracování 15 dní od zadání na cvičeních (máte dvě možnosti konzultovat problémy s úkolem, nebojte se zeptat)
Úkoly #
-
Manipulace s proměnnými
- Uložte do proměnné
a=nazev.txt - Jak záskáte první písmeno, které proměnná obsahuje?
- Jak získáte koncovku, pokud víte, že obsahuje 3 znaky?
- Jak získáte koncovku, pokud nevíte, kolik znaků pobsahuje?
- Jak odtrhnete koncovku, když víte, že je to
txt? - Jak odtrhnete koncovku, pokud víte, že je za poslední tečkou v názvu?
- Jak získáte základní jméno z názvu
jiny_soubor.txt.tgz? (základní jméno je bez tečky, tedy zdejiny_soubor) - Jak z absolutního názvu s adresářem získáte návez adresáře? (např pro
/home/user/psy/cv02/text.txt.tgz) - Jak z zjistíte, zda je zadaný adresář absolutní cestou? (např
/home/user/psy/cv02/text.txt.tgzje absolutní cesta,~/psy/obsah.txtje také absolutní, cesta../psy/l.txtje raltivní) - Jak z relativní cesty vytvoříte absolutní cestu?
- Jak z absolutního názvu s adresářem získáte návez souboru? (např pro `/home/user/psy/cv02/text.txt.tgz')
- Jak z absolutního názvu s adresářem získáte návez základní jméno souboru bez koncovky? (např pro `/home/user/psy/cv02/text.txt.tgz')
- Uložte do proměnné
-
Mezery oddělují parametry
- skript
show_arguments.sh
- skript
#!/usr/bin/env bash
echo "NUMBER OF ARGUMENTS: $#"
I=0
while [ $# -gt 0 ]; do
let I++
echo "ARGUMENT $I: '$1'"
shift
done
-
Parametry
- vysvětlete co tento skript dělá
- zkuste ho spustit s parametry
Hello worlda'Hello world' - chování skriptu vysvětlte
-
Prozkoumejte následující skript
- skript
test.sh
- skript
#!/usr/bin/env bash
l=()
for f in *.txt
do
s=`wc -w "$f" | cut --delimiter=' ' -f1`
if [ "$s" -gt 10 ]
then
l+=( "$f" )
fi
done
- Pole
- Co skript
test.shdělá? - Bude nějaký rozdíl, pokud bychom na konec skriptu připsali
show_arguments "${l[@]}"neboshow_arguments "${l[*]}"? - Na čem tento rozdíl záleží?
- Napište příkaz, aby byly všechny vybrané souboru archivovány příkazem
tar czfdo souboru, který se bude jmenovatzaloha.tgz. - Upravte příkaz tak, aby jméno archivu bylo jméno prvního vybraného souboru s příponou
.tgz
- Co skript