Como usar Keypress no shell? [RESOLVIDO]

1. Como usar Keypress no shell? [RESOLVIDO]

Ghoost User
ghoostuser

(usa Arch Linux)

Enviado em 09/09/2015 - 21:10h

Galera, como faço para detectar se uma combinação de tecla foi precionada no shell script?
tipo assim:

if [[ $key == "^C" ]]; then
exit 0
fi


Tenho que verificar se a tecla para cancelar Ctrl+C foi precionada ai depois sai do script.

Alguém sabe? Obrigado :)


  


2. MELHOR RESPOSTA

Wellingthon Dias Queiroz - @tonyhts
tonyhts

(usa Arch Linux)

Enviado em 10/09/2015 - 11:25h

Olá,

Ao pressionar o CTRL + C o script irá abortar. Não precisa de função para isso. CAso queira saber se o o usuario usou ctrl c para sair use o echo $?, se o cod for 130 ou 139 é pq foi usado ctrl c.

Caso queira "capturar" o CTRL C e dar ou destino a ele, use o trap. Assim:

#!/bin/bash

# Captura o ctrl-c e chama a função ctrl_c()
trap ctrl_c INT

function ctrl_c() {
echo "** CTRL-C Capturado. Querendo sair heinnnn?!?!?!?!!!"
}

for i in `seq 1 10`; do
sleep 1
echo -n "."
done


---
Eu Acredito, que ás vezes são as pessoas que ninguém espera nada que fazem as coisas que ninguém consegue imaginar.

--- Mestre dos Mestres - Alan Turing ---

3. Re: Como usar Keypress no shell? [RESOLVIDO]

Ghoost User
ghoostuser

(usa Arch Linux)

Enviado em 10/09/2015 - 20:39h


Ajudou muitoo! Mais vou explicar melhor, não expliquei...
Tipo, o Ctrl+C bloqueia, mais o meu código tem vários sudo, tipo assim:

sudo apt-get install programa1
sudo apt-get install programa2
sudo apt-get install programa3
sudo apt-get install programa4
sudo apt-get install programa5


Ai quando chegava no primeiro sudo e fosse apertado Ctrl+C queria que os outros sudos abaixo também cancelasse, mas não cancela, continua executando os outros abaixo e tem que ficar dando Ctrl+C pra quantos sudos existir. Por isso eu gostaria muito de saber como capturar a tecla Ctrl+C :), pois assim poderia dar um "exit 0" no script para os outros sudos abaixo tambem, entendeu? Me ajudou muito, muito obrigado mesmo.


4. Re: Como usar Keypress no shell? [RESOLVIDO]

Wellingthon Dias Queiroz - @tonyhts
tonyhts

(usa Arch Linux)

Enviado em 10/09/2015 - 22:54h

Opa! Que bom/

abs
---
Eu Acredito, que ás vezes são as pessoas que ninguém espera nada que fazem as coisas que ninguém consegue imaginar.

--- Mestre dos Mestres - Alan Turing ---






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts