Проблема в пробеле между словом FEATURE
и открывающей скобкой Измените его на FEATURE(``authinfo')dnl
, и он отлично работает
Эти коды должны работать:
magenta=$(tput setaf 5)
blue=$(tput setaf 4)
cyan=$(tput setaf 6)
green="$(tput setaf 2)"
purple=$(tput setaf 5)
red=$(tput setaf 1)
white=$(tput setaf 7)
yellow=$(tput setaf 3)
Возможности терминала не поддерживают цвета, кроме 8 основных. Я нашел этот фрагмент кода для проверки всех доступных цветов (source:tput setaf color table? Как определить цветовые коды?):
# Connector fifos directory
read TMPDIR < <(mktemp -d /dev/shm/bc_shell_XXXXXXX)
fd=3
# find next free fd
nextFd() { while [ -e /dev/fd/$fd ];do ((fd++)) ;done;printf -v $1 %d $fd;}
tputConnector() {
mkfifo $TMPDIR/tput
nextFd TPUTIN
eval "exec $TPUTIN> >(LANG=C exec stdbuf -o0 tput -S - >$TMPDIR/tput 2>&1)"
nextFd TPUTOUT
eval "exec $TPUTOUT<$TMPDIR/tput"
}
myTput() { echo -e "$1\ncr" 1>&$TPUTIN && IFS= read -r -d $'\r' -u $TPUTOUT $2
}
tputConnector
myTput op op
myTput "setaf 7" grey
myTput "setaf 16" black
fore=("$black" "$grey")
for ((i=0; i<256; i++)) ;do
myTput "setab $i" bgr
printf " %s%s %3d %s" "$bgr" "${fore[ i>231 && i<244||(i<17)&& (i%8<2)||
(i>16&&i<232)&&((i-16)%6*11+(i-16)/6%6*14+(i-16)/36*10)<58
? 1 : 0 ]}" $i "$op"
(( ((i<16||i>231) && ((i+1)%8==0)) || ((i>16&&i<232)&& ((i-15)%6==0)) )) &&
printf "\n" ''
done
Ниже приведены выходные данные всех трех терминалов, которые я тестировал.
Значит, терминал не поддерживает цвета, кроме 8 основных. Чтобы быть безопасным и портативным, используйте только эти 8 цветов.
Вы должны настроить тип терминала как putty
,putty-256color
илиputty-sco
при использовании PuTTY или вещей, основанных на нем, таких как MobaXTerm. Это единственные типы терминалов, чьи записи в базе данных terminfo правильно описывают PuTTY .
Широко распространено неверное предположение, что все эмуляторы терминала совместимы с XTerm и что записи xterm
и xterm-256color
в базе данных terminfo правильно их описывают.
Это ошибочное мнение упоминается в FAQ Томаса Дики по XTerm , и стоит отметить, что записи xterm
и xterm-256color
даже не описывают все версии XTerm, не говоря уже о других эмуляторах терминала.
Запись putty
в базе данных terminfo описывает терминал, который поддерживает только 8 ECMA -48 цветов. Как, впрочем, и запись xterm
. Но простое переключение с xterm
наxterm-256colour
неправильно . PuTTY отличается от XTerm.
На самом деле, PuTTY вполне способна индексировать цвета (256 цветов из палитры )с использованием управляющих последовательностей ISO/IEC 8613. Действительно, с 2017 года он вполне способен прямой цвет (24 -битный цвет RGB )с использованием управляющих последовательностей ISO/IEC 8613. Запись putty-256colour
описывает первое. В terminfo нет возможности полностью описать последнее.
Используйте правильный тип клеммы , и tput
будет искать правильную управляющую последовательность.