shell-script-pt
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [shell-script] Como utilizar as teclas de SETA em shell ?


From: Julio C. Neves
Subject: Re: [shell-script] Como utilizar as teclas de SETA em shell ?
Date: Sun, 2 Aug 2015 12:55:08 -0300

pelo menos uma contribuiçãozinha para qdo for pressionado o backspace.

$ function ApagaVolta
> {
>     echo -en '\010 \010'
> }
$ echo -n 1234; ApagaVolta 
123
$ echo -n 1234; ApagaVolta; ApagaVolta
12

Abcs,
Julio
@juliobash
P
róximos cursos de Shell

Cidade         Local Período
Curitiba SoftSell 10/08 a 14/08
São Paulo 4Linux 21/09 a 25/09
Rio de Janeiro EDX 05/10 a 09/10
São Paulo 4Linux 07/12 a 11/12

Dou treinamento de Shell em qualquer cidade.
Para mais detalhes, me mande um e-mail.


Em 2 de agosto de 2015 08:35, Marcos Oliveira address@hidden [shell-script] <address@hidden> escreveu:
 

Putz, já era, espero que consigam reerguer o projeto !

                  ( O O )
   +===========oOO==(_)==OOo==============+
   |                                      |
   |     °v°   Marcos da B.M. Oliveira    |
   |    /(_)\  CEO Terminal Root          |
   |     ^ ^   www.terminalroot.com.br    |
   +======================================+

Em 1 de agosto de 2015 21:58, 'Julio C. Neves' address@hidden [shell-script] <address@hidden> escreveu:
 

Nem precisa ver no livro, tinha tb no Papo de Botequim. O site é http://www.cs.utah.edu/dept/old/texinfo/tput/tput.html#SEC4. Epa! como não ia nesse site há muito tempo, fui dar uma verificada e após algum tempo de pesquisa, recebi o seguinte: http://hpux.cs.utah.edu/hppd/hpux/Development/Tools/xenmenu-0.8b/

Abcs,
Julio
@juliobash
P
róximos cursos de Shell

Cidade         Local Período
Curitiba SoftSell 10/08 a 14/08
São Paulo 4Linux 21/09 a 25/09
Rio de Janeiro EDX 05/10 a 09/10
São Paulo 4Linux 07/12 a 11/12

Dou treinamento de Shell em qualquer cidade.
Para mais detalhes, me mande um e-mail.


Em 1 de agosto de 2015 20:09, Marcos Oliveira address@hidden [shell-script] <address@hidden> escreveu:
 

Opa , valeu Júlio, excelente dica , não sabia que o tput fazia isso , vou dar uma olhada no seu livro.

Obrigadão, abraços!

                  ( O O )
   +===========oOO==(_)==OOo==============+
   |                                      |
   |     °v°   Marcos da B.M. Oliveira    |
   |    /(_)\  CEO Terminal Root          |
   |     ^ ^   www.terminalroot.com.br    |
   +======================================+

Em 1 de agosto de 2015 19:45, 'Julio C. Neves' address@hidden [shell-script] <address@hidden> escreveu:
 

Qdo fiz isso, já há mais de 15 anos, trabalhei com as variáveis Lin e Col que tinham sempre a linha e a coluna atuais e depois eu reposicionada com tput cup.

Mas com certeza vc pode fazer isso com o tput, com sequências de escape e com o setterm, só não lembro quais e estou no celular, sem minhas fontes de consulta.

Se vc tiver meu livro, lá tem o endereço do site, que é uma universidade americana (Utah?), que tem o tput de todas as teclas, inclusive teclas de função.

Em 01/08/2015 19:28, "Marcos Oliveira address@hidden [shell-script]" <address@hidden> escreveu:
 

Opa Júlio, valeu pela dica, mas então...

Eu já havia tentado assim também:

echo -ne '\e[C' # direita

no entanto, a dúvida está como usar o controle, exemplo, com a sua dica, ficaria assim?

_cima=$(read -n1 '^[[A');

case $Chave in
        $_cima)   ((Lin > 0)) && let Lin-- ;;            # Move para Cima
        [Qq])   tput reset; echo; exit
esac

Mas não movimenta, todos controlam pra esquerda...



                  ( O O )
   +===========oOO==(_)==OOo==============+
   |                                      |
   |     °v°   Marcos da B.M. Oliveira    |
   |    /(_)\  CEO Terminal Root          |
   |     ^ ^   www.terminalroot.com.br    |
   +======================================+

Em 1 de agosto de 2015 10:13, 'Julio C. Neves' address@hidden [shell-script] <address@hidden> escreveu:
 

$ read -n3 var # Esquerda
^[[D$ cat -vet <<< "$var"
^[[D$
$ read -n3 var # Direita
^[[C$ cat -vet <<< "$var"
^[[C$
$ read -n3 var # Cima
^[[A$ cat -vet <<< "$var"Cima
^[[A$
$ read -n3 var # Baixo
^[[B$ cat -vet <<< "$var"
^[[B$
$ read -n1 var # Esc
^[$ cat -vet <<< "$var"
^[$

Ou seja todas as setas te geram um <ESC> e um [, o que define sua orientação é um A (Cima), B (Baixo), C (Direita) ou D (Esquerda)

Abcs,
Julio
@juliobash
P
róximos cursos de Shell

Cidade         Local Período
Curitiba SoftSell 10/08 a 14/08
São Paulo 4Linux 21/09 a 25/09
Rio de Janeiro EDX 05/10 a 09/10
São Paulo 4Linux 07/12 a 11/12

Dou treinamento de Shell em qualquer cidade.
Para mais detalhes, me mande um e-mail.


2015-08-01 9:40 GMT-03:00 Marcos Oliveira address@hidden [shell-script] <address@hidden>:
 

Olá pessoal, bom dia, possuo esse script que movimenta apertando a, s, z e w
pra esquerda, direita, para baixo e para cima, no entanto, queria saber como fazê-lo movimentar com as SETAS do TECLADO ( ⇦ ⇧ ⇨ ⇩ ), alguma sugestão?

tput clear;
tput civis;
Lin=$(($(tput lines) / 2))
Col=$(($(tput cols) / 2)) 
tput cup $Lin $Col; echo X
while true
do
    read -sn 1 Chave
    tput cup $Lin $((Col > 0 ? Col - 1 : 0)); echo -n "  "
    case $Chave in
        [Aa])   ((Col > 0)) && let Col-- ;;            
        [Ss])   ((Col < $(tput cols))) && let Col++ ;; 
        [Zz])   ((Lin < $(tput lines))) && let Lin++ ;;
        [Ww])   ((Lin > 0)) && let Lin-- ;;            
        [Qq])   tput reset; echo; exit
    esac
   
    tput ech 1
   
   
    tput cup $Lin $Col
   
   
    echo -n X
   
done
                  ( O O )
   +===========oOO==(_)==OOo==============+
   |                                      |
   |     °v°   Marcos da B.M. Oliveira    |
   |    /(_)\  CEO Terminal Root          |
   |     ^ ^   www.terminalroot.com.br    |
   +======================================+








reply via email to

[Prev in Thread] Current Thread [Next in Thread]