escribí un pequeño script de Bash para encontrar todos los conjuntos de cambios mercuriales (a partir de la punta) que contiene la cadena que se pasa en el argumento:Bash: ¿cómo interrumpir este script cuando hay un CTRL-C?
#!/bin/bash
CNT=$(hg tip | awk '{ print $2 }' | head -c 3)
while [ $CNT -gt 0 ]
do
echo rev $CNT
hg log -v -r$CNT | grep $1
let CNT=CNT-1
done
Si interrumpirlo pulsando Ctrl-C, más a menudo que no es el El comando actualmente ejecutado es "hg log" y es ese comando el que se interrumpe, pero luego mi script continúa.
entonces yo estaba pensando en comprobar el estado de retorno de "hg log", sino porque estoy tubería en grep No estoy muy seguro de cómo ir sobre él ...
¿Cómo debe Voy a salir de este script cuando se interrumpe? (por cierto, no sé si esa secuencia de comandos es buena para lo que quiero hacer, pero funciona y, de todos modos, estoy interesado en el problema "interrumpido")
Muchas gracias, +1 a todos. Funcionando bien :) – SyntaxT3rr0r
Probablemente debería señalar que tanto $ PIPESTATUS como la opción pipefail que Arkku mencionó son Bash versión 3+ específica. No son compatibles con otras conchas. –
gracias, en mi Debian Linuxes, sí tengo Bash 3+, pero en mi Mac es Bash 2.05. – SyntaxT3rr0r