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
Passkeys: A Evolução da Autenticação Digital
Instalação de distro Linux em computadores, netbooks, etc, em rede com o Clonezilla
Título: Descobrindo o IP externo da VPN no Linux
Armazenando a senha de sua carteira Bitcoin de forma segura no Linux
Enviar mensagem ao usuário trabalhando com as opções do php.ini
Como configurar posicionamento e movimento de janelas no Lubuntu (Openbox) com atalhos de teclado
Máquinas Virtuais com IP estático acessando Internet no Virtualbox
Instalar o Microsoft Edge no Slackware 15
Instalando Brave Browser no Linux Mint 22
vídeo pra quem quer saber como funciona Proteção de Memória:
warsaw parou de funcionar após atualização do sistema (solução) (0)
Formatando cartão de memoria que nao formata[AJUDA] (13)
Desde que seja DDR3, posso colocar qualquer memória? [RESOLVIDO] (6)
crontab executar em tempos (1)
Programa duplicado no "Abrir com" e na barra de pesquisa do ... (3)