robconery.com

Shell Script Basics

7 years ago | Command Line Videos
It's a Unix world. You should have a functional knowledge of how to get around a Unix machine using the command line, as well as how to complete basic tasks using shell scripts and Make files.
***

Shell scripts can help make tedious programming tasks routine, like renaming/resizing images. Make is an old, reliable build tool that can replace (easily) Grunt, Gulp, Rake, Jake and any other language-dependent build tool.

As a developer, having a set of scripts, aliases and binaries in your "dotfiles" is a great way to organize the tools that help you on a daily basis.

Why Do You Have a Section On Unix and Shell Scripts?

The simple answer to that is that there are many, many, many developers who stick to the GUI. They prefer apps and tools to commands. They click "File" and "Edit", hunting for "Copy" and "Paste".

You know these people. You were one of these people. This isn't a judgement of any kind; I stick to the GUI myself far more than I'd care to admit. There's a better way, a faster more efficient way to work with a computer, and you'll be a better programmer all around if you learn some basic shell skills.

Unix and Unix-like systems (Linux, BSD, Solaris, RedHat, etc) have been around forever. You simply can't expect to grow much in your career if you don't have a basic competency with Unix and its commands. If you don't believe me, skip right over this chapter. It'll be here when you come back, after you've realized just how true this is.

This is an exciting thing! Crawling under the hood of your computer can increase your efficiency dramatically. Shell scripts, Makefiles, server setup routines, quick little commands to update your system, configuring your web/database server remotely over SSH … these are skills you must know.

So let's wander through the shell. I won't go into Unix history as I'm just not qualified to do so. I'll also sidestep the basics of the Unix commands – that'll be up to you.

Instead, let's get right to the thing that will help you the most in your job: basic shell scripting skills.

The Code

#!/bin/sh
IMAGES=$(ls ./images/**/*.jpg ./images/**/*.png)
DIST=./dist

if [ -d "$DIST" ]; then
    rm -R "$DIST"
fi

mkdir "$DIST"

for IMG in $IMAGES
do
    convert $IMG -resize 600x400 "$DIST/$(basename $IMG)"
done

There's More...

The Subtle Arts of Logging and Testing

I'm a big fan of testing, but I get lazy sometimes and it ends up costing me money, directly.

Test-driven Development In Action

TDD is one of those things that people talk about, argue about, and think is interesting. I'm one of those people, so I asked Brad Wilson to clear it all up for me.

Meet Playwright

Curious about Playwright, the frontend testing framework? Well hang out for the next hour and I'll show it to you!