IsraelTorres icon

alterotx.sh

IsraelTorres | PRO | 03/06/12 02:22:43 AM UTC | 0 ⭐ | 392 👁️ | Never ⏰ | []
Bash |

1.6 KB

|

None

|

0 👍

/

0 👎

#!/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

Comments

  •  icon
    01/01/70 12:00:00 AM UTC
    Plain Text |

    0 B

    |

    👍

    /

    👎