#!/bin/bash # # Generates `good` random password # if [ -z "$1" ]; then LEN=12 else LEN=$1 fi if type -t uuencode >/dev/null ; then function encode { uuencode -m - | sed '1d;3d'; } elif type -t base64 >/dev/null ; then function encode { base64 -; } else echo "There is no suitable base64encode function" 1>&2 exit 1 fi PASSWORD=$(head -c $(($LEN * 2)) /dev/urandom | encode | tr '\n' ' ' | sed 's/[^a-zA-Z0-9]//g' | head -c $LEN) echo "$PASSWORD"