Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
428 views
in Technique[技术] by (71.8m points)

How to randomly generate ANSI colors in Bash/Perl?

I want to generate ANSI colors randomly. It needs two features.

  • Generated randomly
  • Choice to generate from a specific color type e.g. randomly generate different shades of only grey or only green.
See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Answer

0 votes
by (71.8m points)

In bash, you need to use color escape sequences with echo -e

random_colors.sh

#!/bin/bash

TXT='the quick brown fox jumped over the lazy dog.'
WORDS=( $TXT )
for WORD in "${WORDS[@]}"; do
    let "i=$RANDOM % 256"
    echo -en "e[38;5;${i}m$WORD e[0m";
done;
echo

Running this 10 times:

for i in `seq 1 10`; do bash random_colors.sh; done

Output

Bash Color Output

To get a particular palette, you will need to restrict the set of color numbers.

ANSI Escape Codes for Colors

Colors and Formatting


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

2.1m questions

2.1m answers

60 comments

56.8k users

...