#!/bin/bash input=$1 random_string=`cat /dev/urandom | tr -dc A-Z0-9a-z | head -c 15` bail() { echo "$1" exit 1 } [[ "$input" == "" ]] && bail "Usage: az [filename]" [[ -w $input ]] || bail "Error: $input is not writable" [[ ! -e $input.tmp ]] && cp $input $input.$random_string || bail "Error: cannot back up $input - $input.$random_string already exists" sort $input.$random_string > $input || bail "Error: cannot write to $input" [[ -w $input.$random_string ]] && rm -f $input.$random_string exit 0