I’ve used this and variations of this script to generate random passwords for a long time, I recently re-coded this in Python because, well, Python!
#!/bin/bash # SRJ 2017-02-06 cat <<EOF +=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=+ | In OpenOffice, format a page as 'User', Landscape, 3.37"x2.13", with .15" | | margins on all four sides. Select the text below and paste it in a new | | document, then Select All, set font as Ubuntu Mono 10pt Bold. It should | | just fill out two pages. | | | | Print to the XPS Card Printer, in Duplex Mode, short edge. The printer | | will print one side, then instruct you to reinsert the card. Push it | | back in at the bottom of the stack, flipping it over so the side that | | just printed is on the bottom. If you flip long edges to print, you'll | | flip long edges to read and vice versa. | | | | Press the blinking green button and side two should print. | | This card has no upper case Oh or lower case El. | +=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=+ EOF Char='ABCDEFGHIJKLMNPQRSTUVWXYZ_1234567890.!@#$%&}{)(-=+abcdefghijkmnopqrstuvwxyz' Count=${#Char} # The {A..Z} used below is a bashism that returns a list of all items # between the first and last character, in ASCII order, {A..Z} returns; # A B C D E F G H I J K L M N O P Q R S T U V W X Y Z # echo {1..15} # 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 for Row in {A..Z}; do echo -n "${Row}" for Column in {1..3}; do echo -n " " for Character in {1..13}; do echo -n "${Char:$(($RANDOM%${Count})):1}" done done echo "" done |