Сценарий для отображения всех цветов терминала

В Интернете я видел много людей со сценариями, которые печатают кучу вещей во всех цветах, определенных в ~/.Xdefaults. Однако, когда я пытаюсь использовать их, я всегда получаю error: Bad Substitution. Кто-нибудь имеет рабочий скрипт, который делает то же самое?

В конце концов, это выглядит примерно так:

52
задан 21 February 2011 в 03:13

57 ответов

Вот мое решение только с Bash:

for x in {0..8}; do 
    for i in {30..37}; do 
        for a in {40..47}; do 
            echo -ne "\e[$x;$i;$a""m\\\e[$x;$i;$a""m\e[0;37;40m "
        done
        echo
    done
done
echo ""

Однострочный:

for x in {0..8}; do for i in {30..37}; do for a in {40..47}; do echo -ne "\e[$x;$i;$a""m\\\e[$x;$i;$a""m\e[0;37;40m "; done; echo; done; done; echo ""

Вот изображение в Cygwin:

60
ответ дан 25 May 2018 в 22:53

Это модифицированная версия скрипта TLDP. Он показывает стандартные цвета и яркие цвета (коды 90-97 и 100-107).

#!/bin/bash # Show available terminal colours. # Heavily modified version of the TLDP script here: # http://tldp.org/HOWTO/Bash-Prompt-HOWTO/x329.html print_colors(){ # Print column headers. printf "%-4s " '' ${bgs[@]} echo # Print rows. for bold in ${bolds[@]}; do for fg in ${fgs[@]}; do # Print row header printf "%s;%s " $bold $fg # Print cells. for bg in ${bgs[@]}; do # Print cell. printf "\e[%s;%s;%sm%s\e[0m " $bold $fg $bg "text" done echo done done } # Print standard colors. bolds=( 0 1 ) fgs=( 3{0..7} ) bgs=( 4{0..8} ) print_colors # Print vivid colors. bolds=( 0 ) # Bold vivid is the same as bold normal. fgs=( 9{0..7} ) bgs=( 10{0..8} ) print_colors

Пример вывода:

здесь

61
ответ дан 26 July 2018 в 21:40

Это модифицированная версия скрипта TLDP. Он показывает стандартные цвета и яркие цвета (коды 90-97 и 100-107).

#!/bin/bash # Show available terminal colours. # Heavily modified version of the TLDP script here: # http://tldp.org/HOWTO/Bash-Prompt-HOWTO/x329.html print_colors(){ # Print column headers. printf "%-4s " '' ${bgs[@]} echo # Print rows. for bold in ${bolds[@]}; do for fg in ${fgs[@]}; do # Print row header printf "%s;%s " $bold $fg # Print cells. for bg in ${bgs[@]}; do # Print cell. printf "\e[%s;%s;%sm%s\e[0m " $bold $fg $bg "text" done echo done done } # Print standard colors. bolds=( 0 1 ) fgs=( 3{0..7} ) bgs=( 4{0..8} ) print_colors # Print vivid colors. bolds=( 0 ) # Bold vivid is the same as bold normal. fgs=( 9{0..7} ) bgs=( 10{0..8} ) print_colors

Пример вывода:

здесь

61
ответ дан 2 August 2018 в 03:54

Это модифицированная версия скрипта TLDP здесь . Он показывает стандартные цвета и яркие цвета (коды 90-97 и 100-107).

  #! / Bin / bash # Показывать доступные цвета терминалов.  # Сильно измененная версия скрипта TLDP: # http://tldp.org/HOWTO/Bash-Prompt-HOWTO/x329.html print_colors () {# Распечатать заголовки столбцов.  printf "% -4s" '' $ {bgs [@]} echo # Печатать строки.  выделены жирным шрифтом в $ {bolds [@]};  do для fg в $ {fgs [@]};  do # Печатать заголовок строки printf "% s;% s" $ bold $ fg # Ячейки печати.  для bg в $ {bgs [@]};  do # Распечатать ячейку.  printf "\ e [% s;% s;% sm% s \ e [0m" $ bold $ fg $ bg "text" done echo done done} # Печать стандартных цветов.  bolds = (0 1) fgs = (3 {0..7}) bgs = (4 {0..8}) print_colors # Печать ярких цветов.  bolds = (0) # Жирный жирный тот же, что и полужирный.  fgs = (9 {0..7}) bgs = (10 {0..8}) print_colors  

Пример вывода:

61
ответ дан 4 August 2018 в 19:57

Это модифицированная версия скрипта TLDP здесь . Он показывает стандартные цвета и яркие цвета (коды 90-97 и 100-107).

  #! / Bin / bash # Показывать доступные цвета терминалов.  # Сильно измененная версия скрипта TLDP: # http://tldp.org/HOWTO/Bash-Prompt-HOWTO/x329.html print_colors () {# Распечатать заголовки столбцов.  printf "% -4s" '' $ {bgs [@]} echo # Печатать строки.  выделены жирным шрифтом в $ {bolds [@]};  do для fg в $ {fgs [@]};  do # Печатать заголовок строки printf "% s;% s" $ bold $ fg # Ячейки печати.  для bg в $ {bgs [@]};  do # Распечатать ячейку.  printf "\ e [% s;% s;% sm% s \ e [0m" $ bold $ fg $ bg "text" done echo done done} # Печать стандартных цветов.  bolds = (0 1) fgs = (3 {0..7}) bgs = (4 {0..8}) print_colors # Печать ярких цветов.  bolds = (0) # Жирный жирный тот же, что и полужирный.  fgs = (9 {0..7}) bgs = (10 {0..8}) print_colors  

Пример вывода:

61
ответ дан 6 August 2018 в 04:00

Это модифицированная версия скрипта TLDP здесь . Он показывает стандартные цвета и яркие цвета (коды 90-97 и 100-107).

  #! / Bin / bash # Показывать доступные цвета терминалов.  # Сильно измененная версия скрипта TLDP: # http://tldp.org/HOWTO/Bash-Prompt-HOWTO/x329.html print_colors () {# Распечатать заголовки столбцов.  printf "% -4s" '' $ {bgs [@]} echo # Печатать строки.  выделены жирным шрифтом в $ {bolds [@]};  do для fg в $ {fgs [@]};  do # Печатать заголовок строки printf "% s;% s" $ bold $ fg # Ячейки печати.  для bg в $ {bgs [@]};  do # Распечатать ячейку.  printf "\ e [% s;% s;% sm% s \ e [0m" $ bold $ fg $ bg "text" done echo done done} # Печать стандартных цветов.  bolds = (0 1) fgs = (3 {0..7}) bgs = (4 {0..8}) print_colors # Печать ярких цветов.  bolds = (0) # Жирный жирный тот же, что и полужирный.  fgs = (9 {0..7}) bgs = (10 {0..8}) print_colors  

Пример вывода:

61
ответ дан 7 August 2018 в 21:58

Это модифицированная версия скрипта TLDP здесь . Он показывает стандартные цвета и яркие цвета (коды 90-97 и 100-107).

  #! / Bin / bash # Показывать доступные цвета терминалов.  # Сильно измененная версия скрипта TLDP: # http://tldp.org/HOWTO/Bash-Prompt-HOWTO/x329.html print_colors () {# Распечатать заголовки столбцов.  printf "% -4s" '' $ {bgs [@]} echo # Печатать строки.  выделены жирным шрифтом в $ {bolds [@]};  do для fg в $ {fgs [@]};  do # Печатать заголовок строки printf "% s;% s" $ bold $ fg # Ячейки печати.  для bg в $ {bgs [@]};  do # Распечатать ячейку.  printf "\ e [% s;% s;% sm% s \ e [0m" $ bold $ fg $ bg "text" done echo done done} # Печать стандартных цветов.  bolds = (0 1) fgs = (3 {0..7}) bgs = (4 {0..8}) print_colors # Печать ярких цветов.  bolds = (0) # Жирный жирный тот же, что и полужирный.  fgs = (9 {0..7}) bgs = (10 {0..8}) print_colors  

Пример вывода:

61
ответ дан 10 August 2018 в 10:12

Это модифицированная версия скрипта TLDP здесь . Он показывает стандартные цвета и яркие цвета (коды 90-97 и 100-107).

  #! / Bin / bash # Показывать доступные цвета терминалов.  # Сильно измененная версия скрипта TLDP: # http://tldp.org/HOWTO/Bash-Prompt-HOWTO/x329.html print_colors () {# Распечатать заголовки столбцов.  printf "% -4s" '' $ {bgs [@]} echo # Печатать строки.  выделены жирным шрифтом в $ {bolds [@]};  do для fg в $ {fgs [@]};  do # Печатать заголовок строки printf "% s;% s" $ bold $ fg # Ячейки печати.  для bg в $ {bgs [@]};  do # Распечатать ячейку.  printf "\ e [% s;% s;% sm% s \ e [0m" $ bold $ fg $ bg "text" done echo done done} # Печать стандартных цветов.  bolds = (0 1) fgs = (3 {0..7}) bgs = (4 {0..8}) print_colors # Печать ярких цветов.  bolds = (0) # Жирный жирный тот же, что и полужирный.  fgs = (9 {0..7}) bgs = (10 {0..8}) print_colors  

Пример вывода:

61
ответ дан 13 August 2018 в 16:34

Вот мое решение только с Bash:

  для x в {0..8};  сделайте для i в {30..37};  сделайте для a в {40..47};  do echo -ne "\ e [$ x; $ i; $ a" "m \\\ e [$ x; $ i; $ a" "m \ e [0; 37; 40m" done echo done done echo "  " 

Однострочный:

  для x в {0..8};  сделайте для i в {30..37};  сделайте для a в {40..47};  do echo -ne "\ e [$ x; $ i; $ a" "m \\\ e [$ x; $ i; $ a" "m \ e [0; 37; 40m";  сделанный;  эхо;  сделанный;  сделанный;  echo ""  

Вот изображение в Cygwin:

61
ответ дан 15 August 2018 в 23:17

Вот моя версия:

#!/usr/bin/env python
import sys
terse = "-t" in sys.argv[1:] or "--terse" in sys.argv[1:]
write = sys.stdout.write
for i in range(2 if terse else 10):
    for j in range(30, 38):
        for k in range(40, 48):
            if terse:
                write("\33[%d;%d;%dm%d;%d;%d\33[m " % (i, j, k, i, j, k))
            else:
                write("%d;%d;%d: \33[%d;%d;%dm Hello, World! \33[m \n" %
                      (i, j, k, i, j, k,))
        write("\n")

Это печатает все. Если вам нужна хорошая таблица (которая отображает только стиль (0) и (1), нормальный и полужирный), вы можете использовать аргумент -t или --terse:

[d5 ] Стиль «мигания» (5) не работает с гном-терминалом. ; -)

Если это не сработает для вас, есть что-то еще неправильное. Пожалуйста, дайте нам знать, как только вы его протестировали.

29
ответ дан 25 May 2018 в 22:53
  • 1
    Мой цвет подсказки определяется следующим образом: DULL=0 BRIGHT=1 FG_WHITE=37 WHITE="\[$ESC[${DULL};${FG_WHITE}m\]" Почему это, что тусклый белый (0;37;40) более серый, чем белый, а яркий белый (1;37;40) выделен полужирным шрифтом? Я хотел бы установить шрифт терминала ярко-белым на черном, а не полужирным. Когда я запускаю ваш скрипт, 1;37;40 выглядит отлично после первой строки : 5img.com/img13/740/24screenshot.png Итак, моя линия PS1 находится в цвет текста 0;30;40; Я хотел бы его в цвете 0;30;41. – appas 17 November 2011 в 16:59
  • 2
    Кто-нибудь еще находит этот пурпурный цвет особенно уродливым? Это похоже на грязь. – Ether 13 June 2012 в 23:37

Вы также можете использовать пакет colortest.

Установите его с помощью этой команды:
sudo apt-get install colortest
Он предоставляет несколько команд, которые вы можете использовать, в зависимости от того, сколько цветов вы хотите:
colortest-16   colortest-16b  colortest-256  colortest-8

Пример вывода из colortest-16b:

25
ответ дан 25 May 2018 в 22:53

Недавно хотелось найти этот скрипт, который многие люди называют самим собой. Это из tldp.org Bash Prompt HOWTO - http://tldp.org/HOWTO/Bash-Prompt-HOWTO/x329.html. Сценарий автор Дэниел Крисман.

Он выводит точно так же, как на рис. Из вопроса. Сам скрипт:

#!/bin/bash
#
#   This file echoes a bunch of color codes to the 
#   terminal to demonstrate what's available.  Each 
#   line is the color code of one forground color,
#   out of 17 (default + 16 escapes), followed by a 
#   test use of that color on all nine background 
#   colors (default + 8 escapes).
#

T='gYw'   # The test text

echo -e "\n                 40m     41m     42m     43m\
     44m     45m     46m     47m";

for FGs in '    m' '   1m' '  30m' '1;30m' '  31m' '1;31m' '  32m' \
           '1;32m' '  33m' '1;33m' '  34m' '1;34m' '  35m' '1;35m' \
           '  36m' '1;36m' '  37m' '1;37m';
  do FG=${FGs// /}
  echo -en " $FGs \033[$FG  $T  "
  for BG in 40m 41m 42m 43m 44m 45m 46m 47m;
    do echo -en "$EINS \033[$FG\033[$BG  $T  \033[0m";
  done
  echo;
done
echo
3
ответ дан 25 May 2018 в 22:53

я сделал для этого небольшой скрипт:)

вы передали ему номер n и выплевывали цветные строки n вместе с индексом ansi каждого цвета (вы можете использовать его в $(tput setaf <ansi-index>)).

вот скриншот (частичного) вывода:

маленький скрипт

я тоже получил этот, который i forked (и слегка измененный) из twerth:

#!/usr/bin/env bash

echo -e "\033[0mNC (No color)"
echo -e "\033[1;37mWHITE\t\033[0;30mBLACK"
echo -e "\033[0;34mBLUE\t\033[1;34mLIGHT_BLUE"
echo -e "\033[0;32mGREEN\t\033[1;32mLIGHT_GREEN"
echo -e "\033[0;36mCYAN\t\033[1;36mLIGHT_CYAN"
echo -e "\033[0;31mRED\t\033[1;31mLIGHT_RED"
echo -e "\033[0;35mPURPLE\t\033[1;35mLIGHT_PURPLE"
echo -e "\033[0;33mYELLOW\t\033[1;33mLIGHT_YELLOW"
echo -e "\033[1;30mGRAY\t\033[0;37mLIGHT_GRAY"

& hellip; который в моей текущей теме показывает:

этот

3
ответ дан 25 May 2018 в 22:53
  • 1
    Будет ли это работать на Mac? – kyo 10 February 2017 в 19:12
  • 2
    Являются ли эти единственные 7 цветов, которые у нас есть? – kyo 10 February 2017 в 19:12
  • 3
    @ihue - конечно нет, я сделал для этого скрипт .. проверьте его . вы можете передать ему номер n (например, 256), и он выплюнет цвета n, которые поддерживает ваш терминал. – Eliran Malka 12 February 2017 в 03:26
  • 4
    Ваш сценарий классный, но #!/usr/bin/env sh не очень хорошая идея. Он не работает со стандартной оболочкой Ubuntu, которая является тире. Мне пришлось изменить его на баш. – Teresa e Junior 8 November 2017 в 08:03

См. https://askubuntu.com/a/396555/41013. Будет напечатан следующий вывод с такими форматами, как BOLD, UNDERLINE, Highlighting и colors.

1
ответ дан 25 May 2018 в 22:53

Это модифицированная версия скрипта TLDP. Он показывает стандартные цвета и яркие цвета (коды 90-97 и 100-107).

#!/bin/bash
# Show available terminal colours.
# Heavily modified version of the TLDP script here:
# http://tldp.org/HOWTO/Bash-Prompt-HOWTO/x329.html

print_colors(){
  # Print column headers.
  printf "%-4s  " '' ${bgs[@]}
  echo
  # Print rows.
  for bold in ${bolds[@]}; do
    for fg in ${fgs[@]}; do
      # Print row header
      printf "%s;%s  " $bold $fg
      # Print cells.
      for bg in ${bgs[@]}; do
        # Print cell.
        printf "\e[%s;%s;%sm%s\e[0m  " $bold $fg $bg "text"
      done
      echo
    done
  done
}

# Print standard colors.
bolds=( 0 1 )
fgs=( 3{0..7} )
bgs=( 4{0..8} )
print_colors

# Print vivid colors.
bolds=( 0 ) # Bold vivid is the same as bold normal.
fgs=( 9{0..7} )
bgs=( 10{0..8} )
print_colors

Пример вывода:

здесь

1
ответ дан 25 May 2018 в 22:53

См. https://askubuntu.com/a/396555/41013. Будет напечатан следующий вывод с такими форматами, как BOLD, UNDERLINE, Highlighting и colors.

1
ответ дан 25 July 2018 в 22:27

я сделал для этого небольшой скрипт:)

вы передали ему номер n и выплевывали цветные строки n вместе с индексом ansi каждого цвета (вы можете использовать его в $(tput setaf <ansi-index>)).

вот скриншот (частичного) вывода:

маленький скрипт

я тоже получил этот, который i forked (и слегка измененный) из twerth:

#!/usr/bin/env bash echo -e "\033[0mNC (No color)" echo -e "\033[1;37mWHITE\t\033[0;30mBLACK" echo -e "\033[0;34mBLUE\t\033[1;34mLIGHT_BLUE" echo -e "\033[0;32mGREEN\t\033[1;32mLIGHT_GREEN" echo -e "\033[0;36mCYAN\t\033[1;36mLIGHT_CYAN" echo -e "\033[0;31mRED\t\033[1;31mLIGHT_RED" echo -e "\033[0;35mPURPLE\t\033[1;35mLIGHT_PURPLE" echo -e "\033[0;33mYELLOW\t\033[1;33mLIGHT_YELLOW" echo -e "\033[1;30mGRAY\t\033[0;37mLIGHT_GRAY"

& hellip; который в моей текущей теме показывает:

этот

4
ответ дан 25 July 2018 в 22:27
  • 1
    Будет ли это работать на Mac? – kyo 10 February 2017 в 19:12
  • 2
    Являются ли эти единственные 7 цветов, которые у нас есть? – kyo 10 February 2017 в 19:12
  • 3
    @ihue - конечно нет, я сделал для этого скрипт .. проверьте его . вы можете передать ему номер n (например, 256), и он выплюнет цвета n, которые поддерживает ваш терминал. – Eliran Malka 12 February 2017 в 03:26
  • 4
    Ваш сценарий классный, но #!/usr/bin/env sh не очень хорошая идея. Он не работает со стандартной оболочкой Ubuntu, которая является тире. Мне пришлось изменить его на баш. – Teresa e Junior 8 November 2017 в 08:03

Недавно хотелось найти этот скрипт, который многие люди называют самим собой. Это из tldp.org Bash Prompt HOWTO - http://tldp.org/HOWTO/Bash-Prompt-HOWTO/x329.html. Сценарий автор Дэниел Крисман.

Он выводит точно так же, как на рис. Из вопроса. Сам скрипт:

#!/bin/bash # # This file echoes a bunch of color codes to the # terminal to demonstrate what's available. Each # line is the color code of one forground color, # out of 17 (default + 16 escapes), followed by a # test use of that color on all nine background # colors (default + 8 escapes). # T='gYw' # The test text echo -e "\n 40m 41m 42m 43m\ 44m 45m 46m 47m"; for FGs in ' m' ' 1m' ' 30m' '1;30m' ' 31m' '1;31m' ' 32m' \ '1;32m' ' 33m' '1;33m' ' 34m' '1;34m' ' 35m' '1;35m' \ ' 36m' '1;36m' ' 37m' '1;37m'; do FG=${FGs// /} echo -en " $FGs \033[$FG $T " for BG in 40m 41m 42m 43m 44m 45m 46m 47m; do echo -en "$EINS \033[$FG\033[$BG $T \033[0m"; done echo; done echo
3
ответ дан 25 July 2018 в 22:27

Простой однострочный, который должен работать для большинства людей.

msgcat --color=test
2
ответ дан 25 July 2018 в 22:27

Вот моя версия:

#!/usr/bin/env python import sys terse = "-t" in sys.argv[1:] or "--terse" in sys.argv[1:] write = sys.stdout.write for i in range(2 if terse else 10): for j in range(30, 38): for k in range(40, 48): if terse: write("\33[%d;%d;%dm%d;%d;%d\33[m " % (i, j, k, i, j, k)) else: write("%d;%d;%d: \33[%d;%d;%dm Hello, World! \33[m \n" % (i, j, k, i, j, k,)) write("\n")

Это печатает все. Если вам нужна хорошая таблица (которая отображает только стиль (0) и (1), нормальный и полужирный), вы можете использовать аргумент -t или --terse:

Стиль «мигания» (5) не работает с гном-терминалом. ; -)

Если это не сработает для вас, есть что-то еще неправильное. Пожалуйста, дайте нам знать, как только вы его протестировали.

29
ответ дан 25 July 2018 в 22:27
  • 1
    Мой цвет подсказки определяется следующим образом: DULL=0 BRIGHT=1 FG_WHITE=37 WHITE="\[$ESC[${DULL};${FG_WHITE}m\]" Почему это, что тусклый белый (0;37;40) более серый, чем белый, а яркий белый (1;37;40) выделен полужирным шрифтом? Я хотел бы установить шрифт терминала ярко-белым на черном, а не полужирным. Когда я запускаю ваш скрипт, 1;37;40 выглядит отлично после первой строки : 5img.com/img13/740/24screenshot.png Итак, моя линия PS1 находится в цвет текста 0;30;40; Я хотел бы его в цвете 0;30;41. – appas 17 November 2011 в 16:59
  • 2
    Кто-нибудь еще находит этот пурпурный цвет особенно уродливым? Это похоже на грязь. – Ether 13 June 2012 в 23:37

Это модифицированная версия скрипта TLDP. Он показывает стандартные цвета и яркие цвета (коды 90-97 и 100-107).

#!/bin/bash # Show available terminal colours. # Heavily modified version of the TLDP script here: # http://tldp.org/HOWTO/Bash-Prompt-HOWTO/x329.html print_colors(){ # Print column headers. printf "%-4s " '' ${bgs[@]} echo # Print rows. for bold in ${bolds[@]}; do for fg in ${fgs[@]}; do # Print row header printf "%s;%s " $bold $fg # Print cells. for bg in ${bgs[@]}; do # Print cell. printf "\e[%s;%s;%sm%s\e[0m " $bold $fg $bg "text" done echo done done } # Print standard colors. bolds=( 0 1 ) fgs=( 3{0..7} ) bgs=( 4{0..8} ) print_colors # Print vivid colors. bolds=( 0 ) # Bold vivid is the same as bold normal. fgs=( 9{0..7} ) bgs=( 10{0..8} ) print_colors

Пример вывода:

здесь

1
ответ дан 25 July 2018 в 22:27

См. https://askubuntu.com/a/396555/41013. Будет напечатан следующий вывод с такими форматами, как BOLD, UNDERLINE, Highlighting и colors.

26
ответ дан 26 July 2018 в 21:40

я сделал для этого небольшой скрипт:)

вы передали ему номер n и выплевывали цветные строки n вместе с индексом ansi каждого цвета (вы можете использовать его в $(tput setaf <ansi-index>)).

вот скриншот (частичного) вывода:

маленький скрипт

я тоже получил этот, который i forked (и слегка измененный) из twerth:

#!/usr/bin/env bash echo -e "\033[0mNC (No color)" echo -e "\033[1;37mWHITE\t\033[0;30mBLACK" echo -e "\033[0;34mBLUE\t\033[1;34mLIGHT_BLUE" echo -e "\033[0;32mGREEN\t\033[1;32mLIGHT_GREEN" echo -e "\033[0;36mCYAN\t\033[1;36mLIGHT_CYAN" echo -e "\033[0;31mRED\t\033[1;31mLIGHT_RED" echo -e "\033[0;35mPURPLE\t\033[1;35mLIGHT_PURPLE" echo -e "\033[0;33mYELLOW\t\033[1;33mLIGHT_YELLOW" echo -e "\033[1;30mGRAY\t\033[0;37mLIGHT_GRAY"

& hellip; который в моей текущей теме показывает:

этот

4
ответ дан 26 July 2018 в 21:40
  • 1
    Будет ли это работать на Mac? – kyo 10 February 2017 в 19:12
  • 2
    Являются ли эти единственные 7 цветов, которые у нас есть? – kyo 10 February 2017 в 19:12
  • 3
    @ihue - конечно нет, я сделал для этого скрипт .. проверьте его . вы можете передать ему номер n (например, 256), и он выплюнет цвета n, которые поддерживает ваш терминал. – Eliran Malka 12 February 2017 в 03:26
  • 4
    Ваш сценарий классный, но #!/usr/bin/env sh не очень хорошая идея. Он не работает со стандартной оболочкой Ubuntu, которая является тире. Мне пришлось изменить его на баш. – Teresa e Junior 8 November 2017 в 08:03

Недавно хотелось найти этот скрипт, который многие люди называют самим собой. Это из tldp.org Bash Prompt HOWTO - http://tldp.org/HOWTO/Bash-Prompt-HOWTO/x329.html. Сценарий автор Дэниел Крисман.

Он выводит точно так же, как на рис. Из вопроса. Сам скрипт:

#!/bin/bash # # This file echoes a bunch of color codes to the # terminal to demonstrate what's available. Each # line is the color code of one forground color, # out of 17 (default + 16 escapes), followed by a # test use of that color on all nine background # colors (default + 8 escapes). # T='gYw' # The test text echo -e "\n 40m 41m 42m 43m\ 44m 45m 46m 47m"; for FGs in ' m' ' 1m' ' 30m' '1;30m' ' 31m' '1;31m' ' 32m' \ '1;32m' ' 33m' '1;33m' ' 34m' '1;34m' ' 35m' '1;35m' \ ' 36m' '1;36m' ' 37m' '1;37m'; do FG=${FGs// /} echo -en " $FGs \033[$FG $T " for BG in 40m 41m 42m 43m 44m 45m 46m 47m; do echo -en "$EINS \033[$FG\033[$BG $T \033[0m"; done echo; done echo
3
ответ дан 26 July 2018 в 21:40

Простой однострочный, который должен работать для большинства людей.

msgcat --color=test
2
ответ дан 26 July 2018 в 21:40

Вот моя версия:

#!/usr/bin/env python import sys terse = "-t" in sys.argv[1:] or "--terse" in sys.argv[1:] write = sys.stdout.write for i in range(2 if terse else 10): for j in range(30, 38): for k in range(40, 48): if terse: write("\33[%d;%d;%dm%d;%d;%d\33[m " % (i, j, k, i, j, k)) else: write("%d;%d;%d: \33[%d;%d;%dm Hello, World! \33[m \n" % (i, j, k, i, j, k,)) write("\n")

Это печатает все. Если вам нужна хорошая таблица (которая отображает только стиль (0) и (1), нормальный и полужирный), вы можете использовать аргумент -t или --terse:

Стиль «мигания» (5) не работает с гном-терминалом. ; -)

Если это не сработает для вас, есть что-то еще неправильное. Пожалуйста, дайте нам знать, как только вы его протестировали.

29
ответ дан 26 July 2018 в 21:40
  • 1
    Мой цвет подсказки определяется следующим образом: DULL=0 BRIGHT=1 FG_WHITE=37 WHITE="\[$ESC[${DULL};${FG_WHITE}m\]" Почему это, что тусклый белый (0;37;40) более серый, чем белый, а яркий белый (1;37;40) выделен полужирным шрифтом? Я хотел бы установить шрифт терминала ярко-белым на черном, а не полужирным. Когда я запускаю ваш скрипт, 1;37;40 выглядит отлично после первой строки : 5img.com/img13/740/24screenshot.png Итак, моя линия PS1 находится в цвет текста 0;30;40; Я хотел бы его в цвете 0;30;41. – appas 17 November 2011 в 16:59
  • 2
    Кто-нибудь еще находит этот пурпурный цвет особенно уродливым? Это похоже на грязь. – Ether 13 June 2012 в 23:37

См. https://askubuntu.com/a/396555/41013. Будет напечатан следующий вывод с такими форматами, как BOLD, UNDERLINE, Highlighting и colors.

26
ответ дан 2 August 2018 в 03:54

я сделал для этого небольшой скрипт:)

вы передали ему номер n и выплевывали цветные строки n вместе с индексом ansi каждого цвета (вы можете использовать его в $(tput setaf <ansi-index>)).

вот скриншот (частичного) вывода:

маленький скрипт

я тоже получил этот, который i forked (и слегка измененный) из twerth:

#!/usr/bin/env bash echo -e "\033[0mNC (No color)" echo -e "\033[1;37mWHITE\t\033[0;30mBLACK" echo -e "\033[0;34mBLUE\t\033[1;34mLIGHT_BLUE" echo -e "\033[0;32mGREEN\t\033[1;32mLIGHT_GREEN" echo -e "\033[0;36mCYAN\t\033[1;36mLIGHT_CYAN" echo -e "\033[0;31mRED\t\033[1;31mLIGHT_RED" echo -e "\033[0;35mPURPLE\t\033[1;35mLIGHT_PURPLE" echo -e "\033[0;33mYELLOW\t\033[1;33mLIGHT_YELLOW" echo -e "\033[1;30mGRAY\t\033[0;37mLIGHT_GRAY"

& hellip; который в моей текущей теме показывает:

этот

4
ответ дан 2 August 2018 в 03:54
  • 1
    Будет ли это работать на Mac? – kyo 10 February 2017 в 19:12
  • 2
    Являются ли эти единственные 7 цветов, которые у нас есть? – kyo 10 February 2017 в 19:12
  • 3
    @ihue - конечно нет, я сделал для этого скрипт .. проверьте его . вы можете передать ему номер n (например, 256), и он выплюнет цвета n, которые поддерживает ваш терминал. – Eliran Malka 12 February 2017 в 03:26
  • 4
    Ваш сценарий классный, но #!/usr/bin/env sh не очень хорошая идея. Он не работает со стандартной оболочкой Ubuntu, которая является тире. Мне пришлось изменить его на баш. – Teresa e Junior 8 November 2017 в 08:03

Недавно хотелось найти этот скрипт, который многие люди называют самим собой. Это из tldp.org Bash Prompt HOWTO - http://tldp.org/HOWTO/Bash-Prompt-HOWTO/x329.html. Сценарий автор Дэниел Крисман.

Он выводит точно так же, как на рис. Из вопроса. Сам скрипт:

#!/bin/bash # # This file echoes a bunch of color codes to the # terminal to demonstrate what's available. Each # line is the color code of one forground color, # out of 17 (default + 16 escapes), followed by a # test use of that color on all nine background # colors (default + 8 escapes). # T='gYw' # The test text echo -e "\n 40m 41m 42m 43m\ 44m 45m 46m 47m"; for FGs in ' m' ' 1m' ' 30m' '1;30m' ' 31m' '1;31m' ' 32m' \ '1;32m' ' 33m' '1;33m' ' 34m' '1;34m' ' 35m' '1;35m' \ ' 36m' '1;36m' ' 37m' '1;37m'; do FG=${FGs// /} echo -en " $FGs \033[$FG $T " for BG in 40m 41m 42m 43m 44m 45m 46m 47m; do echo -en "$EINS \033[$FG\033[$BG $T \033[0m"; done echo; done echo
3
ответ дан 2 August 2018 в 03:54

Простой однострочный, который должен работать для большинства людей.

msgcat --color=test
2
ответ дан 2 August 2018 в 03:54

Другие вопросы по тегам:

Похожие вопросы: