Мне любопытно, как система сборки закончилась как это. Могут Вы для изменения его? Как минимум можно создать флаг, который позволяет сценариям знать, что другой уже делает задание...
mkdir /tmp/flag.rmdirtest && rm -rf /tmp/dirtest && rmdir /tmp/flag.rmdirtest
Было бы лучше повторно спроектировать вещь так, чтобы это не было необходимо.
На большинстве, если не все эмуляторы терминала, Вы не можете установить различные размеры шрифта или различные шрифты, только цвета и несколько атрибутов (полужирный, подчеркнутый, безусловный победитель).
В ударе (или в zsh или любой другой оболочке), можно использовать терминальные escape-последовательности непосредственно (кроме нескольких экзотических, все терминалы следуют примеру xterm в эти дни). CSI
ESC [
, записанный $'\e['
в ударе. Escape-последовательность для изменения атрибутов CSI Ps m
.
echo $'\e[32;1mbold red\e[0mplain\e[4munderlined'
Zsh имеет удобную функцию для этого.
autoload -U colors
colors
echo $bold_color$fg[red]bold red${reset_color}plain$'\e'$color[underline]munderlined
Вы могли включать эти определения цветов в сценарий или исходный файл. Мог выглядеть примерно так.
#!/bin/bash
PATH=/bin:/usr/bin:
NONE='\033[00m'
RED='\033[01;31m'
GREEN='\033[01;32m'
YELLOW='\033[01;33m'
PURPLE='\033[01;35m'
CYAN='\033[01;36m'
WHITE='\033[01;37m'
BOLD='\033[1m'
UNDERLINE='\033[4m'
echo -e "This text is ${RED}red${NONE} and ${GREEN}green${NONE} and ${BOLD}bold${NONE} and ${UNDERLINE}underlined${NONE}."
tput sgr0
Заметьте, что необходимо сбросить цветовые коды ANSI после каждого экземпляра, Вы вызываете изменение. tput sgr0
сброс все изменения Вы сделали в терминале.
Я верю изменению размера шрифта, или курсив был бы характерен для терминала, который Вы используете.
В то время как это руководство характерно для настройки Вашей подсказки удара, это - хорошая ссылка для цветовых кодов и генерирует некоторые идеи того, что можно сделать.
Кажется, как будто расположение не может обработать [0x1b]
- символ перед [
.
Первая строка осмеливается:
echo -e "\x1b[1m bold"
echo -e "\x1b[30m black"
echo -e "\x1b[31m red"
echo -e "\x1b[32m green"
echo -e "\x1b[33m yellow"
echo -e "\x1b[34m blue"
echo -e "\x1b[35m mag"
echo -e "\x1b[36m cyan"
echo -e "\x1b[37m white"
Для общего типа я только знаю
echo -e "\x1b[0m io-std"
echo -e "\x1b[1m bold"
echo -e "\x1b[2m normal"
и из комментариев, manatwork спасибо и GypsyCosmonaut:
echo -e "\x1b[3m italic"
echo -e "\x1b[4m underlined"
echo -e "\x1b[5m blinking"
echo -e "\x1b[7m inverted"
и не знайте различие между io-std и нормальный.
Я не видел курсив или маленький в оболочке.
Можно ввести их (благодаря manatwork также) Ctrl + v ESC в Bash, где он будет отображен как ^[
. Это означает, что целая последовательность ANSI будет похожа ^[[1m bold
или ^[[1mbold
(для предотвращения пробела прежде 'полужирный').
У многих редакторов есть проблемы с (символом) 0x1b. Альтернативы: скопировать/вставить это от где-нибудь, или использование
echo -e "\x1b[1m bold"
в ударе или Hex-редакторе.
\e[4m
подчеркнутый, \e[5m
мигание, \e[7m
инвертированный.
– manatwork
25.04.2012, 14:52
echo -e "\x1b[3m italic"
– GypsyCosmonaut
16.07.2017, 14:13
Здесь:
http://en.wikipedia.org/wiki/ANSI_escape_code
(примечание: многие из них обычно не работают, но большинство из них помечены таким образом.)
Я делаю игру в терминале и сильно полагаюсь на приведенную выше ссылку. Она даже подсказывает, как скрыть/открыть курсор, сделать цвет (30's), "жирный" (более светлый), темный, подчеркнутый, курсив, цвет фона (40's вместо 30's) и т.д.. Также можно изменить положение курсора (что очень удобно - например, "\x1B[1A"
перемещает курсор на одну строку вверх; "\x1B[0;0H"
перемещает курсор в строку 0, цвет 0; "\x1B[2J"
очищает экран; "\x1B[2K"
очищает строку.
Для ваших целей, как сказали:
echo -e "\x1b[30;44m black with blue background \x1b[m"
echo -e "\x1b[31;42m red with green background \x1b[m"
echo -e "\x1b[32;40m green with black background \x1b[m"
echo -e "\x1b[8m Invisible; na na na na boo boo \x1b[m"
Примечание: Вам нужно -e
в
echo **-e** "\x1b[35;1m Light purple \x1b[m"
или вы должны использовать одинарные кавычки. Введите man echo
, чтобы понять почему (двойные кавычки обычно заноза при печати; когда мне нужны вещи, которые не расширяются или мне нужны ANSI экранирующие последовательности, я использую одинарные кавычки, потому что это легко - даже если я привык делать это так много раз - забыть -e и в этом случае вы получите "коробку с цифрами и буквами
[35;1m").
Каждый раз, когда Вы видите CSI
, замените его на "\x1b["
(или "\e["
или "\u1b["
). "\x1b["
Я думаю, что это более стандартно, но на самом деле я не знаю, в чем разница между ними.