Вместо
name="Hello"
name=$name"\e[36m\(Test\)\e[0m"
echo $name
printf $name
вы могли бы сделать это немного проще. следуйте
name="Hello"
name=$name"$(tput setaf 6)(Test)$(tput sgr0)"
echo $name
printf $name
. Такой подход упростит запоминание соответствующих строк для расширенных цветов (больше 8). Например, при выполнении этого сценария:
#!/bin/sh
[ $# = 0 ] && exec $0 6
name="Hello"
name=$name"$(tput setaf $1)(Test)$(tput sgr0)"
echo $name
printf $name
с параметром 6, 12, 24 и TERM
, установленным на xterm-256color
, соответствующий $ name
с ] \ E
как escape будет
Hello\E[36m(Test)\E(B\E[m
Hello\E[94m(Test)\E(B\E[m
Hello\E[38;5;24m(Test)\E(B\E[m
Для справки:
\ e
в любом) \ e
) эхо
может отличаться от / bin / echo
, то же самое для printf
)