Я написал крошечный скрипт Bash, чтобы найти все наборы изменений Mercurial (начиная с подсказки), которые содержат строку, переданную в аргументе:
#!/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
Если я прерываю его, нажимая ctrl-c, чаще всего в данный момент выполняется команда «hg log», и именно эта команда прерывается, но затем мой сценарий продолжается.
Затем я подумал о проверке статуса возврата "hg log", но поскольку я передаю его в grep, я не слишком уверен, как это сделать...
Как мне выйти из этого сценария, когда он прерван? (кстати, я не знаю, хорош ли этот скрипт вообще для того, что я хочу сделать, но он выполняет свою работу, и в любом случае меня интересует проблема «прерванного»)