diff --git a/advanced/learning_bash_scripting.md b/advanced/learning_bash_scripting.md index 268c7b8..039bba2 100644 --- a/advanced/learning_bash_scripting.md +++ b/advanced/learning_bash_scripting.md @@ -1116,12 +1116,36 @@ TODO # Coding challenge - pipe or argument plus action! Can you expand the previous coding challenge, where you perform a conditional logic on the input of the script and actually *use* the incoming data? +For example, print a shopping list or make a sum of all items you need to purchase. # Coding challenge - Rename files Rename all files from [this](../assets/simple_sort_01.tar.gz) file with an prefix or postfix. Can you give the files that start with an **uppercase** letter a different pre or postfix? Can you move the files with lowercase into a different folder? +If you did it with a prefix, now try with a postfix. + +# Coding challenge - Rename jpeg files + +Download [these](../assets/) files, which are all `jpeg` files. +The extensions however are not really uniform. +Find the most common extension type and rename all files with that extension. + +# Coding challenge - Remove duplicate files + +Find all duplicate files and move them to a different directory. +How certain are you that they are duplicates? + +TODO - shasum exercise + +# Coding challenge - File tree + +Download [this](../assets/) file and use the content of the directory to write me a program that prints the content as a tree structure. +You can be *creative* but it's interesting to learn how to perform these action by hand. +As an extra challenge I would like you to add different behaviour to the script, depending on the input. +For example, if the input file is a `tar.gz` file, the program will automatically uncompress and then show the tree. + +[hint](https://www.shellscript.sh/eg/directories/) # Coding challenge - Guess the number @@ -1173,6 +1197,8 @@ done ## defining a function +## function arguments + ## global vs local variable ## return values @@ -1181,6 +1207,15 @@ done [Ryan's tutorials](https://ryanstutorials.net/bash-scripting-tutorial/bash-functions.php) +# Coding challenge - Student reports + +With the [following](../assets/scores.csv) file write me a program that prints: + +* the total average score for each student +* individual scores for each student +* list of passed student or list of failed students + + # User Interface - Make your scripts user friendly. * `case` for command line arguments @@ -1189,6 +1224,15 @@ done * [better dialog tutorial](https://linuxcommand.org/lc3_adv_dialog.php) * [Ryan's tutorials](https://ryanstutorials.net/bash-scripting-tutorial/bash-user-interfaces.php) +# Coding challenge - Address book + +* one file db or folder db +* case insensitive search +* edit record when found +* format cell phone number to standard representation + +TODO + # Arrays in `bash` TODO diff --git a/links.md b/links.md index 7ad4223..b963a67 100644 --- a/links.md +++ b/links.md @@ -9,12 +9,19 @@ * [debian](https://wiki.debian.org/nspawn) * [arch](https://wiki.archlinux.org/title/systemd-nspawn#Use_a_%22macvlan%22_or_%22ipvlan%22_interface) * [systemd-sysext](https://0pointer.net/blog/testing-my-system-code-in-usr-without-modifying-usr.html) +* show usage of `systemd-run` +* exercise on minimal wayland configuration * [history of command line arguments](https://blog.liw.fi/posts/2022/05/07/unix-cli/) * class on dpkg, apt, and .deb introspection * class on compiling a simple program, maybe recompiling a kernel * exercise on how to take a physical system and convert it to a VM * munin plugin design exercise * advanced [bash](https://tldp.org/LDP/abs/html/index.html) scripting +* make a minimal sway installation usable (wayland focused) + * maybe same but with i3 +* journald-remote exercise with https! +* setup automated install of debian +* gpg/pass/paper-key tutorial ## started