Skip to Content
Navigation:

A stick figure smiling

Here's a preview from my zine, Bite Size Bash!! If you want to see more comics like this, sign up for my saturday comics newsletter or browse more comics!

Image of a comic. To read the full HTML alt text, click "read the transcript".

browse more comics! get the zine!
read the transcript!

the basic syntax

if COMMAND then
   # do thing
else
   # do other thing
fi

(you need a new line or ; before then)

[ vs [[

there are 2 commands often used in if statements: [ and [[

if [ -e file.txt ]
/usr/bin/[ (aka test) is a program that returns 0 if the test you pass it succeeds

if [[ -e file.txt ]]
[[ is built into bash. It lets you do tests like [[e x.txt && -e y.txt ]] that wouldn’t work with a command line tool

if COMMAND

did COMMAND return 0?

if ! COMMAND

did COMMAND NOT return 0?

if true

true always returns 0 :)

if [ -n "$var" ]

is $var nonempty?

if [ e file.txt ]

does file.txt exist?

combine with && and ||

if [ -e file] && [ -e file2 ]

if [ -d somedir ]

does somedir exist?

if [ -x script.sh ]

is script.sh executable?

man [ for more

you can do a lot!

Saturday Morning Comics!

Want another comic like this in your email every Saturday? Sign up here!

I'll send you one of my favourite comics from my archives every Saturday.
© Julia Evans 2024 | All rights reserved (see the FAQ for notes about licensing)