Enviado em 31/05/2023 - 04:22h
Sugestões:ncolors=$(tput colors)
if (( ncolors>=256 )); then
# Com 256 cores, a cor é calculada como 16+36*R+6*G+B (R, G e B variam de 0 a 5). Cores entre 232 e 255 são 24 tons de cinza, do mais escuro ao mais claro (excluindo preto puro, que é a cor 16, e branco puro, que é 231).
o=$(tput setaf 46) # cor das opções: verde brilhante (R,G,B=0,5,0).
c=$(tput setaf 21) # cor do comando: azul brilhante (R,G,B=0,0,5).
s=$(tput setaf 201) # cor do delimitador de conjunto de alternativas: magenta brilhante (R,G,B=5,0,5)
a=$(tput setaf 196) # cor da indicação de alternativa: vermelho brilhante (R,G,B=5,0,0)
n=$(tput setaf 231) # cor “normal”: branco puro (R,G,B=5,5,5)
b=$(tput setab 16) # cor do fundo: preto puro (R,G,B=0,0,0)
r=$(tput sgr0) # reset de cores do terminal
elif (( ncolors>=88 )); then
# Com 88 cores, a cor é calculada como 16+16*R+4*G+B (R, G e B variam de 0 a 3). Cores entre 80 e 87 são 8 tons de cinza, do mais escuro ao mais claro (excluindo preto puro, que é a cor 16, e branco puro, que é 79).
o=$(tput setaf 28) # cor das opções: verde brilhante (R,G,B=0,3,0).
c=$(tput setaf 19) # cor do comando: azul brilhante (R,G,B=0,0,3).
s=$(tput setaf 67) # cor do delimitador de conjunto de alternativas: magenta brilhante (R,G,B=3,0,3)
a=$(tput setaf 64) # cor da indicação de alternativa: vermelho brilhante (R,G,B=3,0,0)
n=$(tput setaf 79) # cor “normal”: branco puro (R,G,B=3,3,3)
b=$(tput setab 16) # cor do fundo: preto puro (R,G,B=0,0,0)
elif (( ncolors>=16 )); then
# Com 16 cores, as cores são calculadas como 8*H+4*B+2*G+R, com H, R, G e B podendo valer 0 ou 1; R, G e B como 0 indicam intensidade 0, e 1 indica intensidade 2/3; H igual a 1 soma 1/3 à intensidade de todas as cores simultaneamente.
o=$(tput setaf 10) # cor das opções: verde brilhante (H,B,G,R=1,0,1,0).
c=$(tput setaf 12) # cor do comando: azul brilhante (H,B,G,R=1,1,0,0).
s=$(tput setaf 13) # cor do delimitador de conjunto de alternativas: magenta brilhante (H,B,G,R=1,1,0,1)
a=$(tput setaf 9) # cor da indicação de alternativa: vermelho brilhante (H,B,G,R=1,0,0,1)
n=$(tput setaf 15) # cor “normal”: branco (H,B,G,R=1,1,1,1)
b=$(tput setab 0) # cor do fundo: preto (H,B,G,R=0,0,0,0)
elif (( ncolors>=8 )); then
# Com 8 cores, as cores são calculadas como 4*B+2*G+R, com R, G e B podendo valor 0 (desligada) ou 1 (ligada). Note que eu removi o adjetivo “brilhante” da descrição das cores; mesmo o branco pode não ser tão branco assim.
# Note o uso de setf/setb em lugar de setaf/setab.
o=$(tput setf 2) # cor das opções: verde (B,G,R=0,1,0).
c=$(tput setf 4) # cor do comando: azul (B,G,R=1,0,0).
s=$(tput setf 5) # cor do delimitador de conjunto de alternativas: magenta (B,G,R=1,0,1)
a=$(tput setf 1) # cor da indicação de alternativa: vermelho (B,G,R=0,0,1)
n=$(tput setf 7) # cor “normal”: “branco” (B,G,R=1,1,1)
b=$(tput setb 0) # cor do fundo: preto (B,G,R=0,0,0)
else
# Supõe que não tem cores. Em vez disso, tentar usar bold (“bold”), itálico (“sitm”), sublinhado (“smul”) e texto invertido (“rev”).
o=$(tput smul) # opção: liga itálico (não funciona em todos os terminais; talvez sublinhado (“smul”) seja melhor).
c=$(tput bold) # comando: liga modo bold
s=$(tput bold) # delimitador de conjunto de alternativas: liga modo bold
a=$(tput bold) # indicação de alternativa: liga modo bold
n=$(tput sgr0) # texto normal: nenhum atributo
b="" # “cor do fundo”: string vazia, para não mexer em nada.
fi
r=$(tput sgr0) # reset de atributos do terminal
# Abaixo, às vezes eu ponho "$n" imediatamente seguido por outra mudança; para cores, pode parecer redundante, mas para monocromático (bold, itálico, sublinhado e inverso), pode ser necessário, e nós estamos reaproveitando o mesmo código.
# Acho que assim fica mais limpo do que com sequências de escape diretamente. E ainda fica mais portável (se bem que eu acho que o (ab)uso de cores deixa a interface mais feia).
echo -e "$b$n\n${a}Usage$n$o:$n $c$0$n $s($n$o-f$n $a|$n $o-g$n$s)$n $s($n$o-t$n $a|$n $o-w$n$s)$n $s($n$o--url$n$s)$n$c=$n\"${o}www.vivaolinux.com.br$n\"
\n$s($n$o-f$n$s) $c=$n para abrir com o mozilla-firefox
$s($n$o-g$n$s) $c=$n para abrir com o google-chrome$s($n$o-t$n$s) $c=$n para abrir uma nova aba no navegador aberto
$s($n$o-w$n$s)$n $c=$n para abrir uma nova janela do navegador$s($n$o--url$n$s)$n $c=$n \"$owww.vivaolinux.com.br$n\"\n$r"
OPTS=$(getopt -a -n ${0} -o f,g,t,w,l,h --long url:,help -- "$@")
OPTS=( $(getopt -a -n ${0} -o fgtwlh --long url:,help -- "$@") )
while :; do
case "$1" in
-f)
N=1
NAVEGADOR="${FIREFOX}"
shift 2
;;
-l)
N=1
NAVEGADOR="${LYNX}"
shift 2
;;
# ... outros testes de opções...
esac
done
abort_browser () {
help
echo "$0: ERRO: especifique apenas um navegador." >&2
exit 1
}
abort_layout () {
help
echo "$0: ERRO: especifique apenas um modo do layout." >&2
exit 1
}
for (( n=0; n<${#OPTS[@]}; ++n )); do
case "${OPTS[$n]}" in
-f)
[[ -z "$NAVEGADOR ]] || abort_browser
NAVEGADOR="$FIREFOX"
;;
-l)
[[ -z "$NAVEGADOR ]] || abort_browser
NAVEGADOR="$LYNX"
;;
-g)
[[ -z "$NAVEGADOR ]] || abort_browser
NAVEGADOR="$CHROME"
;;
-t)
[[ ( -z "$TAB" ) -a ( -z "$JANELA" ) ]] || abort_layout
TAB="$NEWTAB"
;;
-j)
[[ ( -z "$TAB" ) -a ( -z "$JANELA" ) ]] || abort_layout
JANELA="$WINDOW"
;;
# ... etc. ...
esac
done
Aprenda a Gerenciar Permissões de Arquivos no Linux
Como transformar um áudio em vídeo com efeito de forma de onda (wave form)
Como aprovar Pull Requests em seu repositório Github via linha de comando
Quebra de linha na data e hora no Linux Mint
Organizando seus PDF com o Zotero
DEBIAN - PROBLEMA COM REDIRECIONAME... DE DOMINIO NA REDE INTERNA (1)
Sempre que vou baixar algum pacote acontece o erro dpkg (7)
como instalo panfrost-dri e o driver panfrost fork , ou panfrost (12)