Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/bin/zsh
- # ansi256 - shows a nicely formatted table of a selection of ANSI 256-colors
- #----------------------------------------------------------------------------
- FG='38;5;' # foreground
- BG='48;5;' # background
- INV='7m\e['
- END='\e[0m'
- NUMBLOCKS=7
- NUMCOLS=6
- NUMROWS=6
- OFFSET=16
- #----------------------------------------------------------------------------
- # Arguments were implemented when figuring out how to display a nice table
- # good arguments (actually, perfect arguments):
- # ansi256 7 6 6 15
- #
- # NUMBLOCKS=$1
- # NUMCOLS=$2
- # NUMROWS=$3
- # OFFSET=$4
- if [[ $1 == '' ]] ; then
- BEGIN=$FG
- else
- if [[ $1 == "fg" ]] ; then
- BEGIN=$FG
- elif [[ $1 == "bg" ]] ; then
- BEGIN=$BG
- elif [[ $1 == "inv" ]] ; then
- BEGIN=$INV$FG
- else
- BEGIN=$1
- fi
- fi
- ROWMAX=$NUMROWS
- COLMAX=$((NUMCOLS-1))
- BLOCKMAX=$((NUMBLOCKS-1))
- ABSMAX=255
- if [[ $OFFSET -le $((NUMROWS*NUMCOLS)) ]] ; then
- for ROW in `seq 0 7` ; do
- for COL in `seq 0 3` ; do
- VAL=$(((COL*8)+ROW))
- VALFMT=$(printf '%03u' $VAL)
- ANSI="${BEGIN}${VAL}m"
- if [[ $VAL -lt $OFFSET ]] ; then
- echo -ne "\e[${ANSI}"
- echo -nE "${BEGIN}${VALFMT}m"
- echo -ne "${END}"
- else
- echo -nE " "
- fi
- echo -nE " "
- done
- echo -ne "\n"
- done
- echo -ne "\n\n"
- fi
- FINISHED=0
- for BLOCK in `seq 0 $BLOCKMAX` ; do
- for ROW in `seq 1 $ROWMAX` ; do
- for COL in `seq 0 $COLMAX` ; do
- VAL=$(((COL*ROWMAX)+ROW+BLOCKADD+OFFSET-1))
- VALFMT=$(printf '%03u' $VAL)
- ANSI="${BEGIN}${VAL}m"
- if [[ $VAL -le $ABSMAX ]] ; then
- echo -ne "\e[${ANSI}"
- echo -nE "${BEGIN}${VALFMT}m"
- echo -ne "${END}"
- else
- echo -nE " "
- FINISHED=1
- fi
- echo -nE " "
- done
- echo -ne "\n"
- done
- BLOCKADD=$((VAL-OFFSET+1))
- if [[ $FINISHED -eq 1 ]] || [[ $VAL -ge $ABSMAX ]] ; then
- exit 0
- fi
- echo -ne "\n\n"
- done
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement