



Estude fácil! Tem muito documento disponível na Docsity
Ganhe pontos ajudando outros esrudantes ou compre um plano Premium
Prepare-se para as provas
Estude fácil! Tem muito documento disponível na Docsity
Prepare-se para as provas com trabalhos de outros alunos como você, aqui na Docsity
Encontra documentos específicos para os exames da tua universidade
Prepare-se com as videoaulas e exercícios resolvidos criados a partir da grade da sua Universidade
Responda perguntas de provas passadas e avalie sua preparação.
Ganhe pontos para baixar
Ganhe pontos ajudando outros esrudantes ou compre um plano Premium
Este documento explica como utilizar o comando tput em scripts do shell para posicionar caracteres e criar diferentes efeitos na tela, como escrever em vídeo reverso, centralizar mensagens e salvar e restaurar a posição do cursor. O documento também aborda a variável $ifs e como ela pode ser utilizada para ler listas separadas por espaços em branco. Além disso, são apresentados alguns exemplos práticos de como utilizar o comando tput.
Tipologia: Notas de estudo
1 / 5
Esta página não é visível na pré-visualização
Não perca as partes importantes!




Dave Hamilton - www.sxc.hu
Curso de Shell Script
O comando tput
$ var=Papo $ echo ${#var} 4 $ var="Papo de Botequim" $ echo ${#var} 16 Listagem 1 – restaura.sh 01 #!/bin/bash 02 # 03 # Restaura arquivos deletados via erreeme 04 # 05 06 if [ $# -eq 0 ] 07 then 08 echo "Uso: $0 " 09 exit 1 10 fi 11 # Pega nome do arquivo/diretório original na última linha 12 Dir='tail -1 /tmp/$LOGNAME/$1' 13 # O grep -v exclui a última linha e recria o arquivo com o diretório 14 # e nome originalmente usados 15 grep -v $Dir /tmp/$LOGNAME/$1 > $Dir/$ 16 # Remove o arquivo que já estava moribundo 17 rm /tmp/$LOGNAME/$ Linux User 86
abril 2005 edição 07
Coluna=$(((Colunas - ${#*}) / 2))
echo $ Lendo dados da tela*
$ read var1 var2 var Papo de Botequim $ echo $var Papo $ echo $var de $ echo $var Botequim $ read var1 var Papo de Botequim $ echo $var Papo $ echo $var de Botequim
Tabela 1: Parâmetros do tput
Listagem 2: alo.sh 01 #!/bin/bash 02 # Script bobo para testar 03 # o comando tput (versao 1) 04 05 Colunas=tput cols # Salva a quantidade de colunas na tela 06 Linhas=tput lines # Salva a quantidade linhas na tela 07 Linha=$((Linhas / 2)) # Qual é a linha central da tela? 08 Coluna=$(((Colunas - 9) / 2)) # Centraliza a mensagem na tela 09 tput sc # Salva a posição do cursor 10 tput cup $Linha $Coluna # Posiciona o cursor antes de escrever 11 tput rev # Vídeo reverso 12 echo Alô Mundo 13 tput sgr0 # Restaura o vídeo ao normal 14 tput rc # Restaura o cursor à posição original Listagem 3: alo.sh melhorado 01 #!/bin/bash 02 # Script bobo para testar 03 # o comando tput (versão 2.0) 04 05 Colunas=tput cols # Salva a quantidade de colunas na tela 06 Linhas=tput lines # Salva a quantidade de linhas na tela 07 Linha=$((Linhas / 2)) # Qual é a linha central da tela? 08 Coluna=$(((Colunas - ${#1}) / 2)) # Centraliza a mensagem na tela 09 tput sc # Salva a posicao do cursor 10 tput cup $Linha $Coluna # Posiciona o cursor antes de escrever 11 tput rev # Video reverso 12 echo $ 13 tput sgr0 # Restaura o vídeo ao normal 14 tput rc # Devolve o cursor à posição original Linux User 88
abril 2005 edição 07
cat arquivo | while read Linha do echo $Linha done
$ cat readpipe.sh #!/bin/bash
Ultimo="(vazio)"
cat $0 | while read Linha do Ultimo="$Linha" echo "-$Ultimo-" done echo "Acabou, Último=:$Ultimo:"
$ readpipe.sh -#!/bin/bash- -# readpipe.sh- -# Exemplo de read passando um arquivo -# por um pipe.- -- -Ultimo="(vazio)"- -# Passa o script ($0) para o while- -cat $0 | - -while read Linha- -do- -Ultimo="$Linha"- -echo "-$Ultimo-"- -done- -echo "Acabou, Último=:$Ultimo:"- Acabou, Último=:(vazio):
$ cat redirread.sh #!/bin/bash
Ultimo="(vazio)"
while read Linha do Ultimo="$Linha" echo "-$Ultimo-" done < $ echo "Acabou, Último=:$Ultimo:"
$ redirread.sh -#!/bin/bash- -# redirread.sh- -# Exemplo de read passando o arquivo -# por um pipe.- -- -Ultimo="(vazio)"- -while read Linha- -do- -Ultimo="$Linha"- -echo "-$Ultimo-"- -# Passa o script ($0) para o while- -done < $0- -echo "Acabou, Último=:$Ultimo:"- Acabou, Último=:echo "Acabou,U Último=:$Ultimo:":
$ seq 30 > numeros $ cat 10porpag.sh #!/bin/bash
while read Num do let ContLin++ # Contando...
echo -n "$Num " ((ContLin % 10)) > /dev/null || read done < numeros
$ 10porpag.sh 1 2 3 4 5 6 7 8 9 10 12 13 14 15 16 17 U 18 19 20 21 23 24 25 26 27 28 29 30
$ cat 10porpag.sh #!/bin/bash
while read Num do let ContLin++ # Contando...
echo -n "$Num " ((ContLin % 10)) > /dev/null || read U < /dev/tty done < numeros Linux User 90
abril 2005 edição 07
$ 10porpag.sh 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
$ cat 10porpag.sh #!/bin/bash
clear while read Num do
((ContLin++)) echo "$Num" ((ContLin % (tput lines - 3))) || {
read -n1 -p"Tecle Algo " < /dev/tty
clear } done < numeros
Informações
Papo de botequim (^) Linux User abril 2005 edição 07 91