다음과 같은 색상을 지원하는 휴대용 쉘 스크립트가 있다고 가정해 보겠습니다.
#!/bin/sh
set -o nounset
tput_init_linux () { set_fg_color='tput setaf'; reset_color=$(tput sgr0 2>/dev/null); }
tput_init_bsd () { set_fg_color='tput AF'; reset_color=$(tput me 2>/dev/null); }
tput_init_none () { set_fg_color=':'; reset_color=; }
if tput setaf 1 >/dev/null 2>&1; then tput_init_linux || tput_init_none;
elif tput AF 1 >/dev/null 2>&1; then tput_init_bsd || tput_init_none;
else tput_init_none; fi
no_color () { printf '%s' "$reset_color"; }
colorize ()
{
#tput bold
case "$1" in
(red) $set_fg_color 1 ;;
(green) $set_fg_color 2 ;;
(yellow) $set_fg_color 3 ;;
(blue) $set_fg_color 4 ;;
(magenta) $set_fg_color 5 ;;
(cyan) $set_fg_color 6 ;;
(white) $set_fg_color 7 ;;
(*) printf '%s\n' "[ERROR] This color ('$1') is not supported by the colorize() function. Quiting!" >&2; exit 1 ;;
esac
}
print_ok () { colorize green; printf '%s' '[OK] '; no_color; }
print_notice () { colorize cyan; printf '%s' '[NOTICE] '; no_color; }
print_debug () { colorize yellow; printf '%s' '[DEBUG] ' >&2; no_color; }
print_error () { colorize red; printf '%s' '[ERROR] ' >&2; no_color; }
다음은 다소 어리석은 사용 예입니다.
grub_config_file=/boot/grub/grub.cfg
readonly grub_config_file
if [ ! -f "$grub_config_file" ]; then
print_error; printf '%s\n' "GRUB config file not found at $grub_config_file. Aborting!" >&2
exit 1
else
print_ok; printf '%s\n' "GRUB config file was found at $grub_config_file. Searching for Windows..."
fi
지금,내 질문은 굵은 글씨에 관한 것입니다..
tput bold
구체적으로, terminfo/termcap /이 이식 가능한지 확실하지 않습니다. tput md
그렇지 않은 경우 굵은 텍스트의 제한 사항은 무엇입니까?
시간 내 주셔서 감사합니다.