BASH ASCII CHART

Bash script to display an ASCII Chart.

#!/bin/bash
# ASCII Chart 4 columns
# dave@worldsworstwriter.org 15-Sep-2020
col1=(nul soh stx etx eot enq ack bel bs tab nl vt np cr so si dle dc1 dc2 dc3 dc4 nak syn etb can em sub esc fs gs rs us);
col2=(sp ! "\"" "#" "\$" % "&" "'" "(" ")" "*" "+" "," "-" "." "/" 0 1 2 3 4 5 6 7 8 9 ":" ";" "" "?");
col3=("@" 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 "[" "\\" "]" "^" "_");
col4=("\`" 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 "{" "|" "}" "~" del);
red=`tput setaf 1`;
green=`tput setaf 2`
reset=`tput sgr0`;
echo "                          ${green}ASCII CHART${reset}";
echo "Dec Oct Hex Char Dec Oct Hex Char Dec Oct Hex Char Dec Oct Hex Char";
echo "---+---+---+----+---+---+---+----+---+---+---+----+---+---+---+----";
for i in `seq 0 31`; do
# Column 1
printf "%03d" "$i";
printf " ";
printf "%03o" "$i";
printf " ";
printf "%02x" "$i";
printf " ";
printf '%-17s' " "${red}${col1[$i]}${reset};
# Column 2
let x=$i+32;
printf "%03d" "$x";
printf " ";
printf "%03o" "$i";
printf " ";
printf "%02x" "$i";
printf " ";
printf '%-17s' " "${red}${col2[$i]}${reset};
# Column 3
let x=$i+64;
printf "%03d" "$x";
printf " ";
printf "%03o" "$i";
printf " ";
printf "%02x" "$i";
printf " ";
printf '%-17s' " "${red}${col3[$i]}${reset};
# Column 4
let x=$i+96;
printf "%03d" "$x";
printf " ";
printf "%03o" "$i";
printf " ";
printf "%02x" "$i";
printf " ";
printf '%-17s' " "${red}${col4[$i]}${reset};
echo;
done;

Output from the ACSII bash script

                          ASCII CHART
Dec Oct Hex Char Dec Oct Hex Char Dec Oct Hex Char Dec Oct Hex Char
---+---+---+----+---+---+---+----+---+---+---+----+---+---+---+----
000 000 00  nul  032 000 00  sp   064 000 00  @    096 000 00  `
001 001 01  soh  033 001 01  !    065 001 01  A    097 001 01  a
002 002 02  stx  034 002 02  "    066 002 02  B    098 002 02  b
003 003 03  etx  035 003 03  #    067 003 03  C    099 003 03  c
004 004 04  eot  036 004 04  $    068 004 04  D    100 004 04  d
005 005 05  enq  037 005 05  %    069 005 05  E    101 005 05  e
006 006 06  ack  038 006 06  &    070 006 06  F    102 006 06  f
007 007 07  bel  039 007 07  '    071 007 07  G    103 007 07  g
008 010 08  bs   040 010 08  (    072 010 08  H    104 010 08  h
009 011 09  tab  041 011 09  )    073 011 09  I    105 011 09  i
010 012 0a  nl   042 012 0a  *    074 012 0a  J    106 012 0a  j
011 013 0b  vt   043 013 0b  +    075 013 0b  K    107 013 0b  k
012 014 0c  np   044 014 0c  ,    076 014 0c  L    108 014 0c  l
013 015 0d  cr   045 015 0d  -    077 015 0d  M    109 015 0d  m
014 016 0e  so   046 016 0e  .    078 016 0e  N    110 016 0e  n
015 017 0f  si   047 017 0f  /    079 017 0f  O    111 017 0f  o
016 020 10  dle  048 020 10  0    080 020 10  P    112 020 10  p
017 021 11  dc1  049 021 11  1    081 021 11  Q    113 021 11  q
018 022 12  dc2  050 022 12  2    082 022 12  R    114 022 12  r
019 023 13  dc3  051 023 13  3    083 023 13  S    115 023 13  s
020 024 14  dc4  052 024 14  4    084 024 14  T    116 024 14  t
021 025 15  nak  053 025 15  5    085 025 15  U    117 025 15  u
022 026 16  syn  054 026 16  6    086 026 16  V    118 026 16  v
023 027 17  etb  055 027 17  7    087 027 17  W    119 027 17  w
024 030 18  can  056 030 18  8    088 030 18  X    120 030 18  x
025 031 19  em   057 031 19  9    089 031 19  Y    121 031 19  y
026 032 1a  sub  058 032 1a  :    090 032 1a  Z    122 032 1a  z
027 033 1b  esc  059 033 1b  ;    091 033 1b  [    123 033 1b  {
028 034 1c  fs   060 034 1c       092 034 1c  \    124 034 1c  |
029 035 1d  gs   061 035 1d  ?    093 035 1d  ]    125 035 1d  }
030 036 1e  rs   062 036 1e       094 036 1e  ^    126 036 1e  ~
031 037 1f  us   063 037 1f       095 037 1f  _    127 037 1f  del

dave@worldsworstwriter.org 2021-10-23