Enviado em 31/05/2015 - 17:05h
Não sei vocês, mas eu tenho duas (dentre várias) convicções. A primeira, de que ODEIO Shell/Bash/Terminal/Console monocromático. A segunda, de que na escola eu SEMPRE conseguia entender melhor as questões de matemática se a professora utilizasse diversas cores para diferenciar elementos nas equações e saber quais poderiam ser relacionados entre si.#!/bin/bash
# VETORES ######################################################################
######### vetor dos códigos de prompt do shell #################################
code[0]="\d" # data
code[1]="\h" # nome da máquina (host)
code[2]="\j" # processos
code[3]="\n" # nova linha
code[4]="\t" # relógio em formato 24 horas (c/seg)
code[5]="\T" # relógio em formato 12 horas (c/seg)
code[6]="\u" # nome do usuário
code[7]="\w" # diretório atual
code[8]="\!" # número do comando no histórico do usuário
code[9]="\#" # número do comando na instâmcia atual
code[10]="\$" # ID do usuário
code[11]="\@" # relógio em formato 12 horas (s/seg)
######### vetor das cores para os códigos de prompt do shell ###################
color[0]="\e[0;30m" # preto
color[1]="\e[1;30m" # cinza
color[2]="\e[0;31m" # vermelho
color[3]="\e[1;31m" # vermelho claro
color[4]="\e[0;32m" # verde
color[5]="\e[1;32m" # verde claro
color[6]="\e[0;33m" # marrom
color[7]="\e[1;33m" # amarelo
color[8]="\e[0;34m" # azul
color[9]="\e[1;34m" # azul claro
color[10]="\e[0;35m" # roxo
color[11]="\e[1;35m" # roxo claro
color[12]="\e[0;36m" # ciano
color[13]="\e[1;36m" # ciano claro
color[14]="\e[0;37m" # cinza claro
color[15]="\e[1;37m" # branco
color[99]="\e[m" # FECHA a cor escolhida
# FUNÇÕES ######################################################################
######### função de escolha de cores ###########################################
function fChooseColor()
{
reset
echo -ne "Escolha a cor para a opção selecionada
CORES
0 -\e[0;30m Preto\e[m 8 -\e[0;34m Azul\e[m
1 -\e[1;30m Cinza\e[m 9 -\e[1;34m Azul claro\e[m
2 -\e[0;31m Vermelho\e[m 10 -\e[0;35m Roxo\e[m
3 -\e[1;31m Vermelho claro\e[m 11 -\e[1;35m Roxo claro\e[m
4 -\e[0;32m Verde\e[m 12 -\e[0;36m Ciano\e[m
5 -\e[1;32m Verde claro\e[m 13 -\e[1;36m Ciano claro\e[m
6 -\e[0;33m Marrom\e[m 14 -\e[0;37m Cinza claro\e[m
7 -\e[1;33m Amarelo\e[m 15 -\e[1;37m Branco\e[m
COR: "
read chosenColor
}
######### função de menu #######################################################
function fMenu()
{
reset
echo -ne " uniqShell
PROMPT\n$shellPrompt
OPÇÕES
0 - data 7 - diretório atual
1 - nome do host 8 - número histórico do comando
2 - jobs ativos 9 - número corrente do comando
3 - nova linha 10 - ID de usuário
4 - hora (24h) [HH:MM:ss] 11 - hora [HH:MM]
5 - hora (12h) [HH:MM:ss] 12 - literal
6 - usuário 13 - espaço em branco
f - FINALIZAR (salvando) s - SAIR (sem salvar)
OPÇÃO: "
read chosenCode
case $chosenCode in
0 | 1 | 2 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 )
fChooseColor
shellPrompt=`echo "$shellPrompt${color[$chosenColor]}${code[$chosenCode]}${color[99]}"`
;;
3 )
shellPrompt="$shellPrompt\n"
;;
12 )
echo -n "Digite a string literal: "
read literalString
fChooseColor
shellPrompt=`echo "$shellPrompt${color[$chosenColor]}$literalString${color[99]}"`
;;
13 )
shellPrompt="$shellPrompt "
;;
f )
echo PS1=\"$shellPrompt\" >> ${HOME}/.bashrc
reset
echo " Você precisará abrir uma nova instância do terminal"
echo "para as mudanças terem efeito."
echo -e "\n\nObrigado por usar o uniqShell =)"
sleep 7
reset
exit
;;
s )
exit
;;
esac
}
# INÍCIO #######################################################################
while true
do
fMenu
done