Làm cách nào để tạo testcolor.sh như ảnh chụp màn hình sau đây?


23

Tôi tìm thấy hình ảnh này trên internet, nhưng không biết nó được tạo ra như thế nào,

nhập mô tả hình ảnh ở đây

Bất cứ ai có thể cung cấp một mẫu trên đó? Tôi chỉ muốn có một bảng màu là tốt.


Bạn có thể tìm thấy một tập hợp các tập lệnh cho điều này trong ArchWiki .
aloisdg nói Phục hồi lại

Câu trả lời:


25

cài đặt gói có tên là:

đại học

và tận hưởng màu sắc bằng cách chạy các nhị phân như thế colortest-8 colortest-16 colortest-16bvà vân vân


3
Câu trả lời này có lẽ đề cập đến gói trong một bản phân phối Linux cụ thể. Đâu là nguồn có sẵn cho các hương vị khác của Unix?
raimue

trong debian / ubfox: apt-get install colortest
r03

colortest-256bao gồm cả.
nhún

Có phiên bản này cho macOS không? Chúng ta không có apt-get ở đây 🙂
Ben CR Leggiero

17

Trình tự thoát ESC [ SPEC1 ; … mthay đổi các thuộc tính văn bản (màu, đậm, v.v.) của các ký tự được viết sau đó. Đây là một trong các chuỗi thoát thiết bị đầu cuối ANSI . Mỗi SPECcó thể là một trong những điều sau đây (danh sách không đầy đủ):

  • 0 để chuyển sang màu mặc định.
  • 1 để bật in đậm.
  • 30 đến 37 để đặt màu nền trước (đen, đỏ, xanh lá cây, vàng, xanh dương, đỏ tươi, lục lam, xám).
  • 40 đến 47 để đặt màu nền (cùng danh sách).

Đây là một đoạn mã shell xuất ra gần như những gì bạn đã đăng.

printf "          "
for b in 0 1 2 3 4 5 6 7; do printf "  4${b}m "; done
echo
for f in "" 30 31 32 33 34 35 36 37; do
    for s in "" "1;"; do
        printf "%4sm" "${s}${f}"
        printf " \033[%sm%s\033[0m" "$s$f" "gYw "
        for b in 0 1 2 3 4 5 6 7; do
            printf " \033[4%s;%sm%s\033[0m" "$b" "$s$f" " gYw "
        done
        echo
     done
done

colortest là tốt, nhưng câu trả lời này cung cấp chính xác những gì người hỏi ban đầu yêu cầu. Thật tuyệt khi thấy các mã màu trên màn hình. tiết kiệm suy nghĩ về nó.
pdwalker

8

Có một vài biến thể, chính xác là sáu biến thể, được liệt kê trên trang Arch Wiki Xresouces .

Cũng như cái được sử dụng trong ảnh chụp màn hình của bạn, có một số thứ sáng tạo hơn mà tôi yêu thích trong số đó là từ các diễn đàn Crunchbang và có tính năng xâm lược không gian:

#!/bin/bash
#
# ANSI color scheme script featuring Space Invaders
#
# Original: http://crunchbanglinux.org/forums/post/126921/#p126921
# Modified by lolilolicon
#

f=3 b=4
for j in f b; do
  for i in {0..7}; do
    printf -v $j$i %b "\e[${!j}${i}m"
  done
done
bld=$'\e[1m'
rst=$'\e[0m'

cat << EOF

 $f1  ▀▄   ▄▀     $f2 ▄▄▄████▄▄▄    $f3  ▄██▄     $f4  ▀▄   ▄▀     $f5 ▄▄▄████▄▄▄    $f6  ▄██▄  $rst
 $f1 ▄█▀███▀█▄    $f2███▀▀██▀▀███   $f3▄█▀██▀█▄   $f4 ▄█▀███▀█▄    $f5███▀▀██▀▀███   $f6▄█▀██▀█▄$rst
 $f1█▀███████▀█   $f2▀▀███▀▀███▀▀   $f3▀█▀██▀█▀   $f4█▀███████▀█   $f5▀▀███▀▀███▀▀   $f6▀█▀██▀█▀$rst
 $f1 ▀▄▄ ▄▄▀    $f2 ▀█▄ ▀▀ ▄█▀    $f3▀▄    ▄▀   $f4 ▀▄▄ ▄▄▀    $f5 ▀█▄ ▀▀ ▄█▀    $f6▀▄    ▄▀$rst

 $bld$f1 ▀▄   ▄▀    $f2 ▄▄▄████▄▄▄    $f3  ▄██▄     $f4 ▀▄   ▄▀    $f5 ▄▄▄████▄▄▄    $f6  ▄██▄  $rst
 $bld$f1█▄█▀███▀█▄█   $f2███▀▀██▀▀███   $f3▄█▀██▀█▄   $f4█▄█▀███▀█▄█   $f5███▀▀██▀▀███   $f6▄█▀██▀█▄$rst
 $bld$f1▀█████████▀   $f2▀▀▀██▀▀██▀▀▀   $f3▀▀█▀▀█▀▀   $f4▀█████████▀   $f5▀▀▀██▀▀██▀▀▀   $f6▀▀█▀▀█▀▀$rst
 $bld$f1 ▄▀     ▀▄    $f2▄▄▀▀ ▀▀ ▀▀▄▄   $f3▄▀▄▀▀▄▀▄   $f4 ▄▀     ▀▄    $f5▄▄▀▀ ▀▀ ▀▀▄▄   $f6▄▀▄▀▀▄▀▄$rst


                                     $f7$rst

                                   $f7$rst

                              $f7    ▄█▄    $rst
                              $f7▄█████████▄$rst
                              $f7▀▀▀▀▀▀▀▀▀▀▀$rst

EOF

không gian


Tôi thích con số này, nhưng SHW đã cung cấp kịch bản chính xác, tôi sẽ chọn câu trả lời của anh ấy ;-P
daisy

1
Đủ công bằng: trang wiki tôi liên kết đến cũng bao gồm tập lệnh trong ảnh chụp màn hình của bạn; Tôi chỉ nghĩ rằng đây là một cách thú vị hơn để hiển thị màu X :)
jasonwryan

8

Mặc dù không khó để sao chép, nhưng ảnh chụp màn hình của bạn có thể đến từ tldp.org ; dưới cùng của trang đó chứa một tập lệnh xuất ra bảng bạn nhìn thấy:

Để giúp bản thân nhớ những màu nào có sẵn, tôi đã viết một kịch bản xuất tất cả các màu ra màn hình. Daniel Crisman đã cung cấp một phiên bản đẹp hơn nhiều mà tôi bao gồm bên dưới:

#!/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

Có một bảng tương tự có sẵn dưới dạng bản demo trong thư viện F-ANSI :

Bảng màu ANSI được tạo bởi F-ANSI


2
Đây là câu trả lời chính xác cho câu hỏi.
wvducky

6
echo -e "\n\033[4;31mLight Colors\033[0m \t\t\t  \033[1;4;31mDark Colors\033[0m"
echo -e " \e[0;30;47m Black     \e[0m   0;30m \t\t \e[1;30;40m Dark Gray   \e[0m  1;30m"
echo -e " \e[0;31;47m Red       \e[0m   0;31m \t\t \e[1;31;40m Dark Red    \e[0m  1;31m"
echo -e " \e[0;32;47m Green     \e[0m   0;32m \t\t \e[1;32;40m Dark Green  \e[0m  1;32m"
echo -e " \e[0;33;47m Brown     \e[0m   0;33m \t\t \e[1;33;40m Yellow      \e[0m  1;33m"
echo -e " \e[0;34;47m Blue      \e[0m   0;34m \t\t \e[1;34;40m Dark Blue   \e[0m  1;34m"
echo -e " \e[0;35;47m Magenta   \e[0m   0;35m \t\t \e[1;35;40m Dark Magenta\e[0m  1;35m"
echo -e " \e[0;36;47m Cyan      \e[0m   0;36m \t\t \e[1;36;40m Dark Cyan   \e[0m  1;36m"
echo -e " \e[0;37;47m Light Gray\e[0m   0;37m \t\t \e[1;37;40m White       \e[0m  1;37m"

vân vân



0

Tôi không chắc đây có phải là câu trả lời chính xác hay không, nhưng tại http://linuxcommand.org/lc3_adv_tput.php tôi đã tìm thấy một số chức năng kiểm tra thông số để tô màu BASH.

#!/bin/bash

echo "tput colors test"
echo "================"
echo
echo "tput setaf/setab [0-9] ... tput sgr0"
echo

for fg_color in {0..7}; do
  set_foreground=$(tput setaf $fg_color)
  for bg_color in {0..7}; do
    set_background=$(tput setab $bg_color)
    echo -n $set_background$set_foreground
    printf ' F:%s B:%s ' $fg_color $bg_color
  done
  echo $(tput sgr0)
done

echo
echo "END"
echo
exit
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.