सभी टर्मिनल रंगों को प्रदर्शित करने के लिए स्क्रिप्ट


74

इंटरनेट के दौरान मैंने कई लोगों को स्क्रिप्ट के साथ देखा है जो सभी रंगों में सामान का एक गुच्छा प्रिंट करता है ~/.Xdefaults। हालांकि जब मैं इनका उपयोग करने की कोशिश करता हूं, तो मुझे हमेशा मिलता है error: Bad Substitution। क्या किसी के पास एक काम करने वाली स्क्रिप्ट है जो एक ही काम करती है?

इसे कुछ इस तरह देखना चाहिए: यहाँ छवि विवरण दर्ज करें


1
हो सकता है कि यदि आप जिस स्क्रिप्ट का उपयोग कर रहे हैं उसे पोस्ट करना आसान है, और आप इसे कैसे और कहाँ से इसे लागू कर रहे हैं।
लुरी

1
आप ArchWiki में इसके लिए स्क्रिप्ट का एक संग्रह पा सकते हैं ।
अलोएडग

1
मैंने कुछ रंग मुद्रण स्क्रिप्टों को पैक किया, और उन्हें यहां रखा , उदाहरणों के साथ पूरा किया, धन्यवाद, और काढ़ा स्थापना।
पिविस

1
@pvinis धन्यवाद! मैंने ओपी की स्क्रीन में दिखाए गए सटीक एक को खोजने की कोशिश में बहुत समय बिताया।
verboze

1
FWIW, यह प्रतीत होता है कि छवि कहां से आई है: web.archive.org/web/20110809032233/https://bbs.archlinux.org/… । पोस्ट में उपयोग की गई रंग योजना शामिल है, और थ्रेड में उद्घाटन पोस्ट चित्र उत्पन्न करने के लिए उपयोग किए गए स्रोत कोड का हवाला देता है।
mwfearnley

जवाबों:


74

यहाँ केवल बैश के साथ मेरा समाधान है:

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 में एक तस्वीर है:

साइगविन स्क्रीनशॉट


1
FYI करें, बाश में {30..37}समतुल्य है `seq 30 37`और तेज है।
बैरी केली

1
@ बेरीकेली: अच्छा टिप, धन्यवाद। बस परीक्षण किया और जैसा कि आपने उल्लेख किया: यह वास्तव में बहुत तेज है !!! :-) तो यहाँ एक नया है:for x in 0 1 4 5 7 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 "";
१t

क्या यह मैक पर काम करेगा?
क्यो

@ यह देखें कि क्या यह आपके प्रश्न का उत्तर देता है: मैक ओएस एक्स में टर्मिनल उपस्थिति को बेहतर बनाने के लिए सरल ट्रिक्स । अधिक जानकारी के लिए, AskDifferent.com
wjandrea

नमूना कोड मैकओएस पर काम नहीं करता था लेकिन अजगर जवाब ने काम किया।
सोरिन

40

आप colortest सबसे मजबूत स्थापित करेंपैकेज का उपयोग भी कर सकते हैं ।

  1. इस आदेश के साथ इसे स्थापित करें:

    sudo apt-get install colortest
  2. यह कई आज्ञाएँ प्रदान करता है जिनका आप उपयोग कर सकते हैं, यह निर्भर करता है कि आपको कितने रंग चाहिए:

    colortest-16   colortest-16b  colortest-256  colortest-8

उदाहरण से आउटपुट colortest-16b:

यहाँ छवि विवरण दर्ज करें


33

यहाँ मेरा संस्करण है:

#!/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) सूक्ति-टर्मिनल के साथ काम नहीं करती है। ;-)


यदि यह आपके लिए काम नहीं करता है, तो कुछ और गलत है। एक बार परीक्षण करने के बाद कृपया हमें बताएं।


मेरा संकेत रंग इस तरह परिभाषित किया गया है: 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;400;30;41
अप्पास

क्या किसी और को यह मैजेंटा विशेष रूप से बदसूरत लगता है? यह कीचड़ जैसा दिखता है।
ईथर

आप पुरुषों के बीच एक देवता हैं। सबसे अच्छा क्रॉस-प्लेटफॉर्म समाधान। धन्यवाद
आंद्रे टेरा

24

एक साधारण एक-लाइनर जो ज्यादातर लोगों के लिए काम करना चाहिए।

msgcat --color=test

Deadsimple। क्या केवल डिफ़ॉल्ट पृष्ठभूमि रंग प्राप्त करना संभव है?
vrcmr

msgcat --help आपके द्वारा किए गए वाह की व्याख्या नहीं करता है ... क्या यह एक ईस्टर अंडा है?
vrcmr

@vrcmr मैंने कुछ समय पहले एक ब्लॉग में इस एक-लाइनर को ठोकर मार दी थी और दुर्भाग्य --color=testसे मैस्कैट मैन पेज में भी इसका कोई उल्लेख नहीं मिला । मैं इसे एक गैर-विन्यास योग्य ईस्टर अंडे मानता हूं।
12:00 बजे जैक ट्रोकिन्सी

किसी अन्य इच्छुक व्यक्ति के लिए, --color=testधारा 9.11.2 में उल्लिखित हैinfo msgcat
Gerrit0

7

मैंने उसके लिए थोड़ी स्क्रिप्ट बनाई :)

आप इसे एक नंबर पास करते हैं nऔर यह nरंगीन लाइनों के साथ-साथ प्रत्येक रंग के एएनएसआई इंडेक्स (आप इसका उपयोग कर सकते हैं $(tput setaf <ansi-index>)) के साथ बाहर थूकते हैं ।

यहाँ (आंशिक) आउटपुट का स्क्रीनशॉट है:

एएनएसआई-रंग

मैं भी मिल गया यह एक है, जो मैं से अलग (और थोड़ा संशोधित) 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"

... जो, मेरे वर्तमान विषय में, दिखाता है:

टर्मिनल बाहर (यह रंग है)!


क्या यह मैक पर काम करेगा?
ko

क्या ये केवल 7 रंग हैं जो हमारे पास हो सकते हैं ???
ko

@ मेरा - बिल्कुल नहीं, मैंने इसके लिए एक स्क्रिप्ट बनाई है .. इसे देखें । आप इसे एक संख्या n(जैसे 256) पास कर सकते हैं और यह उन nरंगों को थूक देगा जो आपके टर्मिनल का समर्थन करता है।
एलिरन मलका

आपकी स्क्रिप्ट अच्छी है, लेकिन #!/usr/bin/env shयह एक अच्छा विचार नहीं है। यह उबंटू के डिफ़ॉल्ट शेल के साथ काम नहीं करता है, जो डैश है। मुझे इसे बैश करने के लिए बदलना पड़ा।
टेरेसा ई जूनियर

5

हाल ही में उस स्क्रिप्ट को ढूंढना चाहते थे जो कई लोग खुद को संदर्भित कर रहे हैं। यह 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


1

यह यहां 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

उदाहरण आउटपुट:

सूक्ति-टर्मिनल स्क्रीनशॉट


0

यह प्रश्न वास्तव में एक शीर्ष परिणाम है जब मैं एक टर्मिनल में रंग कोड प्रदर्शित करने के बारे में खोज करता हूं। इसलिए मैं न्याय देना चाहता था और वही देना चाहता था जो ओपी वास्तव में देख रहा था। मुझे याद है स्क्रीनशॉट कुछ परिचित है। सबसे पहले, मैंने सोचा कि यह गॉग से था लेकिन यह थोड़ा अलग है। मैंने तब महसूस किया कि यह बिल्कुल वही स्क्रिप्ट है जिसका उपयोग iTerm2 रंगों में किया जा रहा है ।

काफी भाग्यशाली हैं, उन्होंने कहा कि यह मूल रूप से कहाँ से आया था पर एक टिप्पणी जोड़ा

मैं मूल क्रेडिट के साथ iTerm2 से ली गई संदर्भ के लिए स्क्रिप्ट पोस्ट कर रहा हूं :

#!/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).
#
#   Copied from http://tldp.org/HOWTO/Bash-Prompt-HOWTO/x329.html

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

यहाँ स्क्रिप्ट कार्रवाई में है:

यहाँ छवि विवरण दर्ज करें

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.