Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/bin/bash
- # ./alterotx.sh
- # Israel Torres 20120305
- # alternate rotations
- # ./alterotx.sh '23' 'ISRAELTORRES'
- # ROLLX: 23
- # CRYPU: LPUXHIWLUOHP
- # PLAIN: ISRAELTORRES
- # CRYPD: FVODBOQROUBV
- #
- # for i in {0..26}; do ./alterotx.sh $i 'ISRAELTORRES'; done
- #
- # Mac OS X 10.7.3 11D50b
- # Darwin Kernel Version 11.3.0
- # GNU bash, version 3.2.48(1)-release
- #
- # todo: add variables for inc/dec funcs
- function wrap_ascii (){
- MYASC=$1;ASCII_LOWER=65;ASCII_UPPER=90
- if [ "$1" -lt "$ASCII_LOWER" ]; then
- MYASC=$((ASCII_LOWER%$1))
- MYASC=$(($ASCII_UPPER-$MYASC+1))
- fi
- if [ "$1" -gt "$ASCII_UPPER" ]; then
- MYASC=$(($1%$ASCII_UPPER))
- MYASC=$(($ASCII_LOWER+$MYASC-1))
- fi
- echo $MYASC
- }
- function upme () {
- MYASC=$(printf '%d' "'${PLAIN:$i:1}'")
- MYCHR=$((MYASC+$ROLLX))
- MYNEW=$(wrap_ascii "$MYCHR")
- MYOUT=$(printf \\$(printf '%03o' $MYNEW))
- echo -n $MYOUT
- }
- function dnme () {
- MYASC=$(printf '%d' "'${PLAIN:$i:1}'")
- MYCHR=$((MYASC-$ROLLX))
- MYNEW=$(wrap_ascii "$MYCHR")
- MYOUT=$(printf \\$(printf '%03o' $MYNEW))
- echo -n $MYOUT
- }
- function roll_dn () {
- for (( i=0; i<$LEN_PLAIN; i++ )); do
- MYMOD=$(($i%2))
- if [ "$MYMOD" == 0 ]; then
- upme
- fi
- if [ "$MYMOD" == 1 ]; then
- dnme
- fi
- done
- }
- function roll_up () {
- for (( i=0; i<$LEN_PLAIN; i++ )); do
- MYMOD=$(($i%2))
- if [ "$MYMOD" == 0 ]; then
- dnme
- fi
- if [ "$MYMOD" == 1 ]; then
- upme
- fi
- done
- }
- # main()
- if [ ! $# -lt 2 ]; then
- PLAIN=$2; LEN_PLAIN=${#PLAIN}
- ROLLX=$1
- CRYPU=$(roll_up);CRYPD=$(roll_dn)
- echo -e "ROLLX:\t$ROLLX"
- echo -e "CRYPU:\t$CRYPU"
- echo -e "PLAIN:\t$PLAIN"
- echo -e "CRYPD:\t$CRYPD"
- else
- echo "usage: $0 '#''STRING'"
- echo "example: $0 '1' 'ISRAELTORRES'"
- fi
- #eof
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement