User Tools

Site Tools


bash

Bash

The Bourne Again Shell is the default command language / shell in Linux, and I've never bothered to try any other. You type stuff in (or paste it from stackexchange…) and useful stuff happens.

Features

Arguments

You can use getopts to read arguments attached to the command. You use a while loop and a case statement to figure out what to do with the arguments/flags entered.

In this example you can use -i and -o arguments to specify file names and they will be stored in variables input and output.

while getopts :io flag
do
	case $flag in
		i) input=${OPTARG} ;;
		o) output=${OPTARG} ;;
	esac
done

Conditional Constructs

if

-n string True if the length of string is non-zero. -a file True if file exists. DPMT USE -a, it's weird

In the documentation of test you will also see a the switch -e. This switch tests the following argument and evaluates to true if that argument is a file or directory that exists. More useful still is the -f switch which evaluates to true if the following argument exists and is a regular file (as opposed to a directory or a block device, or whatever).

case

Examples

Randomised file names

for file in *.jpeg; do
	mv -- "$file" "$RANDOM.jpeg"
done
for file in *.jpeg; do
	mv -- "$file" "$(mktemp --dry-run XXXXXXXX.jpeg)"
done

Move all files in subdirectories to parent

See Also

Bash examples elsewhere on the wiki:

See Also

bash.txt · Last modified: 2024/01/10 10:59 by rjt