Table of Contents
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
find . -mindepth 2 -type f -print -exec mv {} . \;
See Also
Bash examples elsewhere on the wiki:
See Also
- GNU Bash - Homepage