|
From: | Alysson Azevedo |
Subject: | Re: [shell-script] Projeto - dry-shell |
Date: | Wed, 9 May 2018 15:13:34 -0300 |
extract() {
if [ -f $1 ] ; then
case $1 in
*.tar.bz2)
tar xvjf $1;;
*.tar.gz)
tar xvzf $1;;
*.bz2)
bunzip2 $1;;
*.rar)
unrar x $1;;
*.gz)
gunzip $1;;
*.tar)
tar xvf $1;;
*.tbz2)
tar xvjf $1;;
*.tgz)
tar xvzf $1;;
*.zip)
unzip $1;;
*.Z)
uncompress $1;;
*.7z)
7z x $1;;
*)
echo "'$1' cannot be extracted via >extract<";;
esac
else
echo "'$1' is not a valid file"
fi
}
Mais duas interessantes. Só não são Shell puro pq usam o cmd tput e wc (o wc pode até ser evitado mas acho que o wc -L deve ser mais veloz que ler linha a linha para ver o tamanho da maior):function DesenhaCaixa{# Desenha uma caixa#+ 1o. parâmetro: Linha#+ 2o. parâmetro: Coluna#+ 3o. parâmetro: Altura#+ 4o. parâmetro: Larguralocal ilocal Largura=$4printf -v Linha "%${Largura}s" ' ' # Cria $Largura espaços em $Linhaprintf -v Traco "\e(0\x71\e(B" # Põe um traço semigráfico em $Tracotput cup $1 $2; printf "\e(0\x6c\e(B" # Canto superior esquerdoecho -n ${Linha// /$Traco} # Troca todos os espaços de $Linha por $Tracoprintf "\e(0\x6b\e(B\n" # Canto superior direitofor ((i=1; i<=$3; i++)) # Construindo alturadotput cup $(($1+i)) $2printf "\e(0\x78\e(B" # Barra vertical esquerdaprintf %${Largura}s"\e(0\x78\e(B\n" # Barra vertical direitadoneprintf -v linha "%${Largura}s" ' 'printf -v traco "\e(0\x71\e(B"tput cup $(($1+i)) $2; printf "\e(0\x6d\e(B"echo -n ${Linha// /$Traco} # Troca todos os espaços de $Linha por $Tracoprintf "\e(0\x6a\e(B\n"}; export -f DesenhaCaixafunction DesenhaCaixaComTexto{# Desenha uma caixa#+ 1o. parâmetro: Linha#+ 2o. parâmetro: Coluna#+ 3o. parâmetro: Texto que ficará na caixa (se quiser multilinha tem de mandar com os <ENTER> em $3)local ilocal Texto=$(echo -e "$3")local Largura=$(( $(wc -L <<< "$Texto") + 2)) # wc -L dá o tamanho da maior linhalocal Linhas # Vetor que conterá as linhas (origem 1)for ((i=1; i<=$(wc -l <<< "$Texto"); i++)){Linhas[i]=$(head -$i <<< "$Texto" | tail -1)}printf -v Linha "%${Largura}s" ' ' # Cria $Largura espaços em $Linhaprintf -v Traco "\e(0\x71\e(B" # Põe um traço semigráfico em $Tracotput cup $1 $2; printf "\e(0\x6c\e(B" # Canto superior esquerdoecho -n ${Linha// /$Traco} # Troca todos os espaços de $Linha por $Tracoprintf "\e(0\x6b\e(B\n" # Canto superior direitofor ((i=1; i<=$(wc -l <<< "$Texto"); i++)) # Construindo alturadotput cup $(($1+i)) $2printf "\e(0\x78\e(B ${Linhas[i]}" # Barra vertical esquerda + textotput cup $(($1+i)) $(($2 + Largura +1))printf "\e(0\x78\e(B" # Barra vertical direitadoneprintf -v linha "%${Largura}s" ' 'printf -v traco "\e(0\x71\e(B"tput cup $(($1+i)) $2; printf "\e(0\x6d\e(B"echo -n ${Linha// /$Traco} # Troca todos os espaços de $Linha por $Tracoprintf "\e(0\x6a\e(B\n"}; export -f DesenhaCaixaComTextoAbraços,Julio» Não tem tempo para fazer um curso presencial?» Na sua cidade não tem nenhum bom curso de Linux?» O treinamento está muito caro?O melhor de todos em EAD é http://www.dicas-l.com.br/cursos/psl/ Damos treinamento em sua empresa com certificadoe nota fiscal por um preço, no mínimo, 50% abaixode qualquer curso.Nosso time de instrutores in company é formado somente porautores de Best Sellers laureados sobre os temas. P. exemplo:Shell básico e Programação em Shell Julio Neves
Bacula Heitor Medrado
Zabbix Adail Host
Produção Gráfica e Videografismo Cadunico
Em 9 de maio de 2018 11:50, Enilton Angelim address@hidden [shell-script] <address@hidden.br > escreveu:Pessoal, estou fazendo uma biblioteca de funções com foco em clean code, padrão de código, produtividade e praticidade. É um projeto novo, mas já possui alguns recursos.Estou tentando fazer tudo de forma nativa (sempre que possivel), apenas usando comandos internos do shell.
[Prev in Thread] Current Thread [Next in Thread]
- Re: [shell-script] Projeto - dry-shell, (continued)
- Re: [shell-script] Projeto - dry-shell, Enilton Angelim, 2018/05/11
- Re: [shell-script] Projeto - dry-shell, Enilton Angelim, 2018/05/11
- Re: [shell-script] Projeto - dry-shell, itamarnet, 2018/05/11
- Re: [shell-script] Projeto - dry-shell, Julio C. Neves, 2018/05/11
- Re: [shell-script] Projeto - dry-shell, itamarnet, 2018/05/11
- Re: [shell-script] Projeto - dry-shell, Enilton Angelim, 2018/05/11
- Re: [shell-script] Projeto - dry-shell, Julio C. Neves, 2018/05/12
- Re: [shell-script] Projeto - dry-shell, Enilton Angelim, 2018/05/14
- Re: [shell-script] Projeto - dry-shell, Julio C. Neves, 2018/05/11
Re: [shell-script] Projeto - dry-shell, Julio C. Neves, 2018/05/09
- Re: [shell-script] Projeto - dry-shell, Alysson Azevedo <=
- Prev by Date: Re: [shell-script] Projeto - dry-shell
- Next by Date: Re: [shell-script] Script de Log
- Previous by thread: Re: [shell-script] Projeto - dry-shell
- Next by thread: Executar script
- Index(es):