Advertisement
Guest User

AnthonyA7

a guest
Feb 3rd, 2010
36
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 2.21 KB | None | 0 0
  1. #!/bin/zsh
  2. # ansi256 - shows a nicely formatted table of a selection of ANSI 256-colors
  3. #----------------------------------------------------------------------------
  4.  
  5. FG='38;5;'   # foreground
  6. BG='48;5;'   # background
  7. INV='7m\e['
  8. END='\e[0m'
  9.  
  10. NUMBLOCKS=7
  11. NUMCOLS=6
  12. NUMROWS=6
  13. OFFSET=16
  14.  
  15. #----------------------------------------------------------------------------
  16. # Arguments were implemented when figuring out how to display a nice table
  17. # good arguments (actually, perfect arguments):
  18. #   ansi256 7 6 6 15
  19. #
  20. #     NUMBLOCKS=$1
  21. #     NUMCOLS=$2
  22. #     NUMROWS=$3
  23. #     OFFSET=$4
  24.  
  25. if [[ $1 == '' ]] ; then
  26.     BEGIN=$FG
  27. else
  28.     if [[ $1 == "fg" ]] ; then
  29.         BEGIN=$FG
  30.     elif [[ $1 == "bg" ]] ; then
  31.         BEGIN=$BG
  32.     elif [[ $1 == "inv" ]] ; then
  33.         BEGIN=$INV$FG
  34.     else
  35.         BEGIN=$1
  36.     fi
  37.  
  38. fi
  39.  
  40.  
  41. ROWMAX=$NUMROWS
  42. COLMAX=$((NUMCOLS-1))
  43. BLOCKMAX=$((NUMBLOCKS-1))
  44. ABSMAX=255
  45.  
  46. if [[ $OFFSET -le $((NUMROWS*NUMCOLS)) ]] ; then
  47.     for ROW in `seq 0 7` ; do
  48.         for COL in `seq 0 3` ; do
  49.             VAL=$(((COL*8)+ROW))
  50.             VALFMT=$(printf '%03u' $VAL)
  51.             ANSI="${BEGIN}${VAL}m"
  52.             if [[ $VAL -lt $OFFSET ]] ; then
  53.                 echo -ne "\e[${ANSI}"
  54.                 echo -nE "${BEGIN}${VALFMT}m"
  55.                 echo -ne "${END}"
  56.             else
  57.                 echo -nE "         "
  58.             fi
  59.             echo -nE "  "
  60.  
  61.         done
  62.         echo -ne "\n"
  63.     done
  64.     echo -ne "\n\n"
  65. fi
  66.  
  67. FINISHED=0
  68.  
  69. for BLOCK in `seq 0 $BLOCKMAX` ; do
  70.     for ROW in `seq 1 $ROWMAX` ; do
  71.         for COL in `seq 0 $COLMAX` ; do
  72.             VAL=$(((COL*ROWMAX)+ROW+BLOCKADD+OFFSET-1))
  73.             VALFMT=$(printf '%03u' $VAL)
  74.             ANSI="${BEGIN}${VAL}m"
  75.             if [[ $VAL -le $ABSMAX ]] ; then
  76.                 echo -ne "\e[${ANSI}"
  77.                 echo -nE "${BEGIN}${VALFMT}m"
  78.                 echo -ne "${END}"
  79.             else
  80.                 echo -nE "         "
  81.                 FINISHED=1
  82.             fi
  83.             echo -nE "  "
  84.  
  85.         done
  86.         echo -ne "\n"
  87.     done
  88.     BLOCKADD=$((VAL-OFFSET+1))
  89.     if [[ $FINISHED -eq 1 ]] || [[ $VAL -ge $ABSMAX ]] ; then
  90.         exit 0
  91.     fi
  92.     echo -ne "\n\n"
  93. done
  94.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement