This lesson is being piloted (Beta version)

BASH Programming for Workflow Management

The BASH shell is the main interface for most unix and linux computers (from desktop machines to high performance computers). This course will introduce you to advanced features of the shell, with a focus on how these can be used to manage your computational workflows.

Many of the tools that you will be taught about today have more advanced corresponding tools in other languages. However, bash is commonly used for process control on unix systems, and these tools are widely availability on such systems, so it is useful for you to know how to use them.

Prerequisites

This course follows on from the Unix shell introduction course , so we recommend you complete this first.

It would also be useful if you completed the Git introduction course.

Schedule

Setup Download files required for the lesson
00:00 1. Dates, Scheduling, and Downloading Files How can we deal with date maths on the command line
How can we schedule regular compute jobs
How can we download files outside of a web-browser
00:15 2. Variables and Arrays How can I store information without writing it to file
00:30 3. Subshells and Functions How can you organise your code into functional blocks
How can you import settings from other files into your scripts
01:10 4. BASH Logic and Maths How can we have responsive workflows on the BASH shell
01:40 5. Advanced Loops How do you avoid repetition of code (but not actions) in your scripts?
How can we repeat actions an indeterminate number of times, but not get stuck in infinity?
02:00 6. Sed and regular expressions How can you edit text files within your scripts?
How can you make your searches more powerful?
02:20 7. Symbolic Links How can you reuse one file in multiple directories?
How can you ease moving around your file system?
02:40 Finish

The actual schedule may vary slightly depending on the topics and exercises chosen by the instructor.